Calculer la somme en utilisant la boucle"pour"ou bien"tant que"?

Fermé
ladiagonaledufou
Messages postés
7
Date d'inscription
lundi 28 décembre 2015
Statut
Membre
Dernière intervention
29 décembre 2015
- Modifié par ladiagonaledufou le 28/12/2015 à 01:54
fiddy
Messages postés
11067
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
- 29 déc. 2015 à 23:02
salut à tous , je suis un débutant en programmation et merci de m'aider à résoudre cette question s'il vous plait :

_ comment écrire en programme (c) un programme qui permet de calculer la somme suivante :( 1 + 2 + 3 + ... + n ) ? peut'on le faire avec la boucle "pour" ?

normalement on doit utilisé la boucle "tant que" pourquoi ?

merci d'avance et belle journée pour vous :) .
A voir également:

3 réponses

fiddy
Messages postés
11067
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 808
28 déc. 2015 à 16:13
Bonjour,
Qu'est-ce qui te bloque ? La partie algorithmique ou la partie "code en C" ?
Oui, cela peut se faire avec une boucle for ou même une boucle while.
1
ladiagonaledufou
Messages postés
7
Date d'inscription
lundi 28 décembre 2015
Statut
Membre
Dernière intervention
29 décembre 2015

28 déc. 2015 à 17:32
bonjour et merci de m'avoir répondu , au faite ce qui me bloque c'est la partie "code en c"en utilisant la boucle pour " for" j'ai plusieurs fois essai ,j'ai chercher mais je trouvais pas la solution ? j'ai réussie à faire la somme ( 1+2+3+...+n) avec "while" mais pas avec "for"
je vous remercie :)
0
fiddy
Messages postés
11067
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 808
28 déc. 2015 à 21:14
Montre-nous le code que tu as fait jusqu'à maintenant pour qu'on puisse corriger ce qui ne va pas.
0
ladiagonaledufou
Messages postés
7
Date d'inscription
lundi 28 décembre 2015
Statut
Membre
Dernière intervention
29 décembre 2015
> fiddy
Messages postés
11067
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022

29 déc. 2015 à 16:46
d'abord merci , voici le code en c que j'ai fais avec la boucle "while" et ça marche : #include<stdio.h>
#include<conio.h>
void main ()
{ int i=0,s=0,n ;
clrscr();
printf("donner n= ");
scanf ("%d",&n);
while(i<=n)
{s=s+1
i=i+1;
}
printf("s=%d",s);
getch();
}
et le résulta par exemple si on prend n=5 on trouve la somme "s=15"

maintenant je vais essai avec la boucle " for "

#include<stdio.h>
#include<conio.h>
void main ()
{ int i,s,n ;
clrscr();
printf("donner n= ");
scanf ("%d",&n);
for(i=0,i<=n,i++)
{s=s+1;
}
printf("s=%d",s);
getch();
}

et la le résulta si on prend le même cas que j'ai pris avant
c'est à dire : n=5 j'aurai la somme qui apparaît comme ce ci :
s=1271 ce qui est différent du premier résulta avec "while"
sachant que le vrais résulta de la somme c'est s=15 lorsque n=5
je vous remercie , belle journée pour vous :)
0
fiddy
Messages postés
11067
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 808 > ladiagonaledufou
Messages postés
7
Date d'inscription
lundi 28 décembre 2015
Statut
Membre
Dernière intervention
29 décembre 2015

29 déc. 2015 à 19:46
Bonjour,

Mes remarques sur l'algorithme :
Ce n'est pas bon. Là, tu ne fais pas 1+2+3+4, mais n+1.
Il faudrait plutôt additionner s et i. Je te laisse réfléchir sur la manière de faire.

Maintenant, mes remarques sur le code :
void main()
Le bon prototype du main() sans argument est : int main(void)
Aussi, il ne faut pas oublier le return 0; avant l'accolade finale.

conio.h et getch()
Attention, ce n'est pas portable. Utilise plutôt getchar().
clrscr()
De même, non portable. Entre nous, cela a plus tendant à énerver l'utilisateur lorsqu'on supprime sa console. Donc tu n'es même pas obligé de mettre :-).

printf("s=%d",s);
N'oublie pas de mettre un \n après %d (pour forcer l'affichage avant la fin du programme).

Pour le deuxième programme :
for(i=0,i<=n,i++)
Attention, ce sont des ; (et non des ,) pour séparer les conditions du for.

N'hésite pas à reposter ton code corrigé pour qu'on vérifie.

Note : n'oublie pas d'utiliser la balise <code c> pour poster ton code proprement.
Exemple :
<code c>
ici tu mets ton code
</code>
0
ladiagonaledufou
Messages postés
7
Date d'inscription
lundi 28 décembre 2015
Statut
Membre
Dernière intervention
29 décembre 2015

29 déc. 2015 à 21:16
salut ,désolé en vérité j'ai fais { s=s+i }, et pas "s=s+1" dans le programme et j'ai mal recopier , voici le même programme corrigé comme tu me l'as demandé
 
#include<stdio.h>
#include<conio.h>
void main (void)
 { int i,n,s;
   printf("donner n=");
   scanf("%d",&n);
   for(i=0;i<=n;i++)
   {s=s+i;
   } 
   printf("s=%d\n",s);
   getchar();
   return ; 
 }
   


et là même probleme le resulta n'est pas juste car lorsque je lui donne n=5 le resulta est :s=1237
alors que normalement s=15

ah vous savais je pense que la faute pouvais bien être sur ( ne pas avoir donner une valeur pour la somme "s" de l’initialisation oui c'est ça :) merci beaucoup de votre aide je vais envoyer le bon code ... et ça marche n=5,s=15 )
0