Somme des n premmiers nombres en C
Résolu/Fermé
acrony
Messages postés
14
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
2 décembre 2010
-
Modifié par acrony le 23/11/2010 à 10:54
acrony Messages postés 14 Date d'inscription mardi 23 novembre 2010 Statut Membre Dernière intervention 2 décembre 2010 - 23 nov. 2010 à 13:55
acrony Messages postés 14 Date d'inscription mardi 23 novembre 2010 Statut Membre Dernière intervention 2 décembre 2010 - 23 nov. 2010 à 13:55
A voir également:
- Somme des n premmiers nombres en C
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Code binaire des nombres - Guide
- Somme en anglais excel - Guide
- Citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). ✓ - Forum LibreOffice / OpenOffice
6 réponses
Tatanos
Messages postés
966
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
26 mai 2016
156
23 nov. 2010 à 10:57
23 nov. 2010 à 10:57
Bonjour,
Le but est, par exemple, de calculer la somme de 1 à 80 si tu lui passe 80 en paramètre ? (n = 80 quoi)
Le but est, par exemple, de calculer la somme de 1 à 80 si tu lui passe 80 en paramètre ? (n = 80 quoi)
Gaunts
Messages postés
1125
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
18 mars 2012
116
23 nov. 2010 à 11:04
23 nov. 2010 à 11:04
Bonjour,
Ca fait longtemps que j'ai pas fait de C, mais là comme ça, je vois que tu décrémentes n deux fois dans la boucle.
Ca fait longtemps que j'ai pas fait de C, mais là comme ça, je vois que tu décrémentes n deux fois dans la boucle.
acrony
Messages postés
14
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
2 décembre 2010
23 nov. 2010 à 11:14
23 nov. 2010 à 11:14
Salut
en fait, je me disais que tant que n-- > 0 on décrémente. c'est a dire que par ex: si je prends n=5, tant que 5-- >0 on doit pouvoir avoir 5+(5-1)+(5+(5-1-1)) etc jusqu'à ce que 5-- soit égal a zéro je me sers de la décrémentation de n comme d'un compteur et le calcul qui se fait sur n+n-- s'arrête quand n-- est égale a zéro. Je sais pas si je suis clair ou logique, peut-être que je me goure...
en fait, je me disais que tant que n-- > 0 on décrémente. c'est a dire que par ex: si je prends n=5, tant que 5-- >0 on doit pouvoir avoir 5+(5-1)+(5+(5-1-1)) etc jusqu'à ce que 5-- soit égal a zéro je me sers de la décrémentation de n comme d'un compteur et le calcul qui se fait sur n+n-- s'arrête quand n-- est égale a zéro. Je sais pas si je suis clair ou logique, peut-être que je me goure...
acrony
Messages postés
14
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
2 décembre 2010
23 nov. 2010 à 11:37
23 nov. 2010 à 11:37
j'utilise codeblocks, et j'ai applique la formule mathématiques des n premiers nombres soufflée par tatanos (N * (N+1)) / 2 au lieu de mon code, les résultats sont toujours aussi incohérents par exemple avec 10 comme valeur j'ai un résultat de l'ordre du million alors que je devrais avoir 55, c'est d'ailleurs le même résultat quelques soient la valeur de n
Gaunts
Messages postés
1125
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
18 mars 2012
116
Modifié par Gaunts le 23/11/2010 à 11:48
Modifié par Gaunts le 23/11/2010 à 11:48
poste ton code avec les balises < code> < /code>
Tatanos
Messages postés
966
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
26 mai 2016
156
Modifié par Tatanos le 23/11/2010 à 11:07
Modifié par Tatanos le 23/11/2010 à 11:07
Bon, du coup je n'y connais rien en C, mais je peux te donner une formule mathématique pour calculer la somme des N premiers nombres qui est :
(N * (N+1)) / 2
(N * (N+1)) / 2
acrony
Messages postés
14
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
2 décembre 2010
23 nov. 2010 à 11:15
23 nov. 2010 à 11:15
merci
Gaunts
Messages postés
1125
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
18 mars 2012
116
23 nov. 2010 à 11:21
23 nov. 2010 à 11:21
Re, j'ai fait des test et effectivement ya plusieurs problemes.
Déja, tu décrémentes 2 fois donc tu fais -2 à chaque calcul.
Ensuite, ici, aucune valeur n'augmente. Tu ne fais que décrémenter n, ça ne peut pas te donner de résultat.
Voila ce que je te conseille:
1) soit tu prend la formule de tatanos.
2) soit tu veux utiliser des boucles, et dans ce cas:
tu input n;
tu places sum à la valeur de n;
tant que n > 0, tu additionne n à la valeur de sum.
Déja, tu décrémentes 2 fois donc tu fais -2 à chaque calcul.
Ensuite, ici, aucune valeur n'augmente. Tu ne fais que décrémenter n, ça ne peut pas te donner de résultat.
Voila ce que je te conseille:
1) soit tu prend la formule de tatanos.
2) soit tu veux utiliser des boucles, et dans ce cas:
tu input n;
tu places sum à la valeur de n;
tant que n > 0, tu additionne n à la valeur de sum.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pitch@n
Messages postés
222
Date d'inscription
jeudi 30 août 2007
Statut
Membre
Dernière intervention
1 août 2013
66
Modifié par Pitch@n le 23/11/2010 à 12:15
Modifié par Pitch@n le 23/11/2010 à 12:15
Salut ;)
Je pense que c'est ca que tu veux ;) essaye de bien comprendre le code
Voila le code avec un for
ici avec un do-while
Valou ;) en espérant ne pas me tromper
Si l'argent se trouvait sur les arbres,
les femmes aimeraient les singes.
Je pense que c'est ca que tu veux ;) essaye de bien comprendre le code
Voila le code avec un for
#include <stdio.h> #include <stdlib.h> int main(){ int n = 0, sum = 0, i = 0; printf("Input the number : "); scanf("%d", &n); printf("%d\n", n); sum = n; for(i=0; i<n ;i++){ sum += n-i; } printf("The result is: %d\n", sum); }
ici avec un do-while
#include <stdio.h> #include <stdlib.h> int main(){ int n = 0, sum = 0, i = 0; printf("Input the number : "); scanf("%d", &n); printf("%d\n", n); sum = n; do{ sum += n-i; i++; }while(i < n); printf("The result is: %d\n", sum); }
Valou ;) en espérant ne pas me tromper
Si l'argent se trouvait sur les arbres,
les femmes aimeraient les singes.
Gaunts
Messages postés
1125
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
18 mars 2012
116
23 nov. 2010 à 12:15
23 nov. 2010 à 12:15
C'est ça, mais je voulais qu'il le fasse lui même^^
Pitch@n
Messages postés
222
Date d'inscription
jeudi 30 août 2007
Statut
Membre
Dernière intervention
1 août 2013
66
23 nov. 2010 à 12:39
23 nov. 2010 à 12:39
Toute mes excuses ^^
Essaye de le refaire sans regarder Arcony
Ta variable sum est modifié a chaque passage dans la boucle c'est donc dans la boucle que tu dois avoir ton sum = ...
Essaye de le refaire sans regarder Arcony
Ta variable sum est modifié a chaque passage dans la boucle c'est donc dans la boucle que tu dois avoir ton sum = ...
acrony
Messages postés
14
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
2 décembre 2010
23 nov. 2010 à 13:55
23 nov. 2010 à 13:55
Ok mais j'ai opte pour l'application toute bête de la formule mathématique et ca marche mais je vais teste tes suggestions.
Merci
Merci
23 nov. 2010 à 11:01
oui c'est ca le truc