Aide sur la boucle while en langage C
loty91
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
loty91 -
loty91 -
Bonjour, j'apprend à programmer en C et j'essaie de faire cet exercice:
Ecrire un programme qui demande à l'utilisateur d'entrer au plus 10 nombres puis qui affiche la somme des nombres entrés.
Pour cela j'ai écrit ce programme mais au moment de l'exécution la somme est toujours fausse(du moins ce n'est jamais ce que j'attendais) et je sais vraiment pas pourquoi.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int nCounter,nNumb,nSum;
nSum=0;
nCounter=1;
while(nCounter<10)
{
printf(" Saisissez le %d éme nombre: ",nCounter);
scanf("%d",&nNumb);
nSum=nSum+nNumb;
nCounter++;
printf("la somme de ces nombres est:\n");
printf("%d+%d=%d\n",nSum,nNumb,nSum+nNumb);
}
system("PAUSE");
return 0;
}
Aidez moi s'il vous plait!!Merci d'avance!
Ecrire un programme qui demande à l'utilisateur d'entrer au plus 10 nombres puis qui affiche la somme des nombres entrés.
Pour cela j'ai écrit ce programme mais au moment de l'exécution la somme est toujours fausse(du moins ce n'est jamais ce que j'attendais) et je sais vraiment pas pourquoi.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int nCounter,nNumb,nSum;
nSum=0;
nCounter=1;
while(nCounter<10)
{
printf(" Saisissez le %d éme nombre: ",nCounter);
scanf("%d",&nNumb);
nSum=nSum+nNumb;
nCounter++;
printf("la somme de ces nombres est:\n");
printf("%d+%d=%d\n",nSum,nNumb,nSum+nNumb);
}
system("PAUSE");
return 0;
}
Aidez moi s'il vous plait!!Merci d'avance!
A voir également:
- Factorielle en c boucle while
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
- Factorielle calculatrice casio ✓ - Forum calculatrices
- Problème xiaomi redmi note 8t s'allume et s'éteint vibre - Forum Xiaomi
2 réponses
C'est juste ton printf qui n'est pas bon...
Ce code marche (prend l'habitude d'initialiser directement tes valeurs) car l'affichage du nombre calculé est placé... Après que le nombre soit calculé ^^
Ou un code plus proche du tien :
La calcul se fait après l'affichage, car dans ton affichage même, tu calcule déjà un nombre déjà calculé 8)
Je suis clair ? ^^'
Médite sur ces 2 codes par rapport au tien ;)
PS : Les accents marchent pas en console ^^
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int nCounter = 1,nNumb = 0,nSum = 0; while(nCounter<=10) { printf("Saisissez le %d eme nombre: ",nCounter); scanf("%d",&nNumb); printf("%d+%d=",nSum,nNumb); nSum+=nNumb; printf("%d\n", nSum); nCounter++; printf("la somme de ces nombres est: %d\n\n", nSum); } system("PAUSE"); return 0; }
Ce code marche (prend l'habitude d'initialiser directement tes valeurs) car l'affichage du nombre calculé est placé... Après que le nombre soit calculé ^^
Ou un code plus proche du tien :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int nCounter,nNumb,nSum;
nSum=0;
nCounter=1;
while(nCounter<10)
{
printf(" Saisissez le %d éme nombre: ",nCounter);
scanf("%d",&nNumb);
nCounter++;
printf("la somme de ces nombres est:\n");
printf("%d+%d=%d\n",nSum,nNumb,nSum+nNumb);
nSum=nSum+nNumb;
}
system("PAUSE");
return 0;
}
La calcul se fait après l'affichage, car dans ton affichage même, tu calcule déjà un nombre déjà calculé 8)
Je suis clair ? ^^'
Médite sur ces 2 codes par rapport au tien ;)
PS : Les accents marchent pas en console ^^
merci beaucoup!! ça marche mais je ne comprends pas pourquoi la disposition change tout?Surtout pour le deuxième programme?? Je ne sais pas si tu comprends ce que je veux dire. En fait je pensais qu'il ne pouvait afficher nSum que s'il était déja défini?
mais il est défini.
si tu veux bien comprendre ce que fait ton programme et ceux de luern, prend une feuille de papier, un crayon et une gomme.
Ensuite, mets toi "à la place" de l'ordinateur qui va lire ton code.
Lorsque tu déclare une variable, note là.
lorsque tu donnes / change une valeur de ta variable, écris le à coté de ta variable, efface la valeur précédente avec ta gomme.
et sur une partie de la feuille tu fais l'"écran" où tu écriras ce que fais printf exactement.
essaye déjà ça et regarde si ça colle avec le vrai résultat.
si ça ne marche pas, écris ce que tu croyais obtenir (toutes les étapes) et on verra.
si tu veux bien comprendre ce que fait ton programme et ceux de luern, prend une feuille de papier, un crayon et une gomme.
Ensuite, mets toi "à la place" de l'ordinateur qui va lire ton code.
Lorsque tu déclare une variable, note là.
lorsque tu donnes / change une valeur de ta variable, écris le à coté de ta variable, efface la valeur précédente avec ta gomme.
et sur une partie de la feuille tu fais l'"écran" où tu écriras ce que fais printf exactement.
essaye déjà ça et regarde si ça colle avec le vrai résultat.
si ça ne marche pas, écris ce que tu croyais obtenir (toutes les étapes) et on verra.