Exercices C/C++ pour débutants

Calculer le PGCD en C et C++

Dans cette leçon, vous allez trouver le plus grand commun diviseur (PGCD) de deux entiers avec l'algorithme d'Euclide.

Introduction

Le plus grand commun diviseur (PGCD) de deux nombres est le plus grand nombre qui les divise tous les deux. L'algorithme d'Euclide trouve le PGCD en remplaçant sans cesse la paire (a, b) par (b, reste de la division de a par b), jusqu'à ce que le reste vaille 0.

Points importants

  • Activez les avertissements du compilateur (compiler warnings) et corrigez-les tous.
  • Comprenez bien le type et la durée de vie (lifetime) de chaque valeur.
  • Vérifiez toujours les données d'entrée et les limites des indices de tableau.

Exemples de code C et C++

C
Exécuter →
main.c
#include <stdio.h>
int main(void) {
    int left = 48, right = 18;
    // Reduce the pair until no remainder remains.
    while (right) { int remainder = left % right; left = right; right = remainder; }
    printf("gcd=%d\n", left);
}
Résultat de l’exécution
gcd=6
C++
Exécuter →
main.cpp
#include <iostream>
#include <numeric>
int main() {
    // std::gcd implements Euclid's algorithm.
    std::cout << "gcd=" << std::gcd(48, 18) << '\n';
}
Résultat de l’exécution
gcd=6

Comparaison entre C et C++

À chaque tour, le programme calcule remainder = left % right, puis affecte left = right et right = remainder. Quand right vaut 0, la valeur restant dans left est le PGCD. Pour 48 et 18, le résultat est gcd=6.

C

C utilise de petites fonctions procédurales et montre ouvertement comment les données sont représentées en mémoire.

C++

C++ permet toujours de travailler à bas niveau, mais ajoute des types de bibliothèque et des abstractions plus sûres.

Exercices d'approfondissement

Exécutez les deux versions, puis modifiez le code pour observer la différence de sécurité qu'apporte chaque langage.

  • Testez des entrées invalides et des valeurs limites.
  • Compilez avec les options -Wall -Wextra -Wpedantic pour activer davantage d'avertissements.
  • Placez les déclarations communes dans un fichier d'en-tête et l'implémentation dans un fichier séparé.

S'entraîner avec un défi

Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.

Tous les défis