Ok, donc j'essaye de créer un programme utilisant une boucle while pour trouver le plus grand commun diviseur de deux nombres. C'est ce que j'ai trouvé. Cependant, d'après ce que je peux dire, le programme semble juste sauter la boucle entièrement quand je l'exécute. (opers reste 0, le diviseur revient toujours égal à num1). Quelqu'un là-bas qui peut aider un débutant?Pourquoi cette boucle while ne fonctionne-t-elle pas?
/* Define variables for divisors and number of operations */
int num1, num2, divisor, opers;
opers = 0;
/* Prompt user for integers and accept input */
cout << "Please enter two integers with the smaller number first, separated by a space. ";
cout << endl;
cin >> num1 >> num2;
/* Make divisor the smaller of the two numbers */
divisor = num1;
/* While loop to calculate greatest common divisor and number of calculations */
while ((num1 % divisor != 0) && (num2 % divisor != 0))
{
divisor--;
opers++;
}
/* Output results and number of calculations performed */
cout << "The greatest common divisor of " << num1 << " and " << num2 << " is: ";
cout << divisor << endl << "Number of operations performed: " << opers;
Je vous recommande d'apprendre à parcourir le code à l'aide d'un débogueur. – StackedCrooked