Les vases communicants
#include <stdio.h>
int main()
{
int i, n1, n2;
int transvasement;
printf("\nentrer un nombre entier positif ");
scanf("%d",&n1);
printf("\nentrer un nombre entier positif ");
scanf("%d",&n2);
transvasement = 0;
while ((n1 != n2)&&(n1+1!=n2)&&(n1!=n2+1)) // réfléchissez à cette condition d'arrêt.
{
if (n1>n2)
{
n1--;
n2++;
}
else
{
n1++;
n2--;
}
transvasement++;
}
printf("\n\nil y a eu %d transvasements et n1 = %d et n2 = %d ", transvasement,n1,n2);
printf("\n\n");
}
Exemples de sortie écran :
Exemple 1:
entrer un nombre entier positif 8
entrer un nombre entier positif 2
il y a eu 3 transvasements et n1 = 5 et n2 = 5
Exemple 2 :
entrer un nombre entier positif 8
entrer un nombre entier positif 3
il y a eu 2 transvasements et n1 = 6 et n2 = 5
si l'on change le test ((n1 != n2) && (n1+1!=n2) && (n1!=n2+1)) par (n1 != n2) que se passe-t-il avec n1=7 et n2=3, puis avec n1 = 7 et n2 = 4 ?
Exécutez à la main le code pour répondre, vous verrez (voir conseils point 3).