Somme de Nombres C++
Je suis censé écrire un programme qui demande à l'utilisateur une valeur entière positive. Le programme doit utiliser une boucle pour obtenir la somme de
tous les entiers de 1 jusqu'au numéro entré. Par exemple, si l'utilisateur entre 50), la boucle de trouver la somme de
1, 2, 3, 4, ... 50.
Mais pour quelque raison il ne fonctionne pas, j'ai de la difficulté avec mes boucles for, mais c'est ce que j'ai jusqu'à maintenant.
#include <iostream>
using namespace std;
int main()
{
int positiveInteger;
int startingNumber = 1;
int i = 0;
cout << "Please input an integer up to 100." << endl;
cin >> positiveInteger;
for (int i=0; i < positiveInteger; i++)
{
i = startingNumber + 1;
cout << i;
}
return 0;
}
Je suis juste à une perte de la droite maintenant pourquoi il ne fonctionne pas correctement.
que pensez-vous de la
juste un conseil: gardez un œil sur vos variables: startingNumber est utilisé deux fois, une fois dans la déclaration pour le de 1, et une deuxième fois lorsque vous ajoutez 1 (..si " je " sera toujours fixé à 2!)
J'ai utilisé
Vous devez ajouter
Ouais j'ai essayé que je viens de mettre
i = startingNumber +1;
partie est pour?juste un conseil: gardez un œil sur vos variables: startingNumber est utilisé deux fois, une fois dans la déclaration pour le de 1, et une deuxième fois lorsque vous ajoutez 1 (..si " je " sera toujours fixé à 2!)
J'ai utilisé
sum
pour ajouter le i + 1
mais il se contente d'afficher le nombre je veux ajouter tous ces chiffres qu'elle imprime et c'est là que je suis à la perte.Vous devez ajouter
sum
à chaque fois pour sum
.Ouais j'ai essayé que je viens de mettre
sum + sum;
et ensuite l'imprimer?OriginalL'auteur soniccool | 2011-09-18
Vous devez vous connecter pour publier un commentaire.
essayez ceci:
Dans le futur, au moment de donner de l'aide pour les devoirs essayer de guide l'OP pour la réponse, au lieu de fournir d'emblée.
Cela fonctionne parfaitement, au moins j'ai pu voir ce que j'ai fait de mal maintenant. Merci! Bien que la réponse a été donnée haha.
OriginalL'auteur xxcv
La boucle est grande; c'est ce qui est à l'intérieur de la boucle, c'est faux. Vous avez besoin d'une variable nommée
sum
, et ce, à chaque étape, ajouteri+1
àsum
. À la fin de la boucle,sum
aura le droit de valeur, afin de l'imprimer.Oui, cela fonctionne jusqu'à présent, mais j'ai besoin de la somme de tous ces nombres, il imprime..
OriginalL'auteur Ernest Friedman-Hill
Vous pouvez essayer:
Mais beaucoup plus facile est à noter que la somme
1+2+...+n = n*(n+1) /2
, de sorte que vous n'avez pas besoin d'une boucle à tous, il suffit d'utiliser la formulen*(n+1)/2
.OriginalL'auteur Jiri Kriz
J'ai la formule suivante qui fonctionne sans boucles. Je l'ai découvert en essayant de trouver une formule pour les factorielles:
OriginalL'auteur zackery.fix
mystycs, vous êtes à l'aide de la variable
i
pour contrôler votre boucle, cependant vous modifiez la valeur dei
dans la boucle:Essayez plutôt ceci:
OriginalL'auteur Polaris878
result += startingNumber + 1
.OriginalL'auteur Tony The Lion
Tout d'abord, vous avez deux des variables de même nom
i
. Cela s'appelle la confusion.Deuxièmement, vous devez déclarer une variable appelée
sum
, qui est initialement nulle. Puis, dans une boucle, vous devez ajouter les nombres de 1 jusqu'à et y comprispositiveInteger
. Après cela, vous devriez sortie de lasum
.OriginalL'auteur Roland Illig
Vous êtes juste de mettre à jour la valeur de
i
dans la boucle. La valeur dei
devraient également être ajoutés à chaque fois.Ce n'est jamais une bonne idée de mettre à jour la valeur de
i
à l'intérieur de lafor
boucle. Lefor
indice de boucle ne doit être utilisé comme un compteur. Dans votre cas, la modification de la valeur dei
intérieur de la boucle de provoquer toutes sortes de confusion.Créer une variable
total
qui détient la somme des nombres jusqu'ài
.Donc
OriginalL'auteur rohit89