Somme des n premmiers nombres en C
Résolu
acrony
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
acrony Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
acrony Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis entrain de commencer a programmer en C et je suis coince sur ce code. Je voudrais en fait faire la somme des n premiers chiffres. J'utilise une boucle ''do while'' et la décrémentation. Mais le résultat est incohérent. Un coup de main les gars...
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n = 0, sum = 0;
printf("Input the number : ");
scanf("%d", &n);
printf("%d", &n);
do {n + n--;
}while( n-- > 0);
sum = n + n--;
printf("The result is: ");
printf("%d", &sum);
je suis entrain de commencer a programmer en C et je suis coince sur ce code. Je voudrais en fait faire la somme des n premiers chiffres. J'utilise une boucle ''do while'' et la décrémentation. Mais le résultat est incohérent. Un coup de main les gars...
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n = 0, sum = 0;
printf("Input the number : ");
scanf("%d", &n);
printf("%d", &n);
do {n + n--;
}while( n-- > 0);
sum = n + n--;
printf("The result is: ");
printf("%d", &sum);
A voir également:
- Somme des n premmiers nombres en C
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Somme en anglais excel - Guide
- Code binaire des nombres - Guide
- Nombres faciles - Télécharger - Outils professionnels
6 réponses
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)
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.
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...
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
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
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
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.
oui c'est ca le truc