2016-04-02 3 views
-7

私は負の値が入力されるまでユーザーに数字を入力するように継続的に要求する簡単なCプログラムを作成しようとしています。ユーザが入力した正の数。入力した数字を一緒に追加する方法がわからないため、問題が発生しています。私はスタートを切ったし、今のところこれを持ってきました:Cプログラム - whileループの整数を加算する

int main() 
    { 
     int numbersEntered, sum; 
     while(numbersEntered>0) { 
     printf("Enter Numbers to add together: "); 
     scanf("%d", &numbersEntered); 
     } 
     printf("%d", sum); 
    } 

私が入力したすべての整数の合計を計算する方法を知りません。

+2

宿題をしている場合は、自分でやってみるべきです。これは非常に単純な概念で、数分の研究の後に答えを見つけたでしょう(cで数値を追加する方法)。 – Rob

答えて

0

プログラムは次のよう

#include <stdio.h> 

int main(void) 
{ 
    int numberEntered; 
    long long int sum; 

    sum = 0; 

    printf("Enter numbers to add together (a negative number - exit): "); 

    while(scanf("%d", &numberEntered) == 1 && numberEntered >= 0) 
    { 
     sum += numberEntered; 
    } 

    printf("%lld\n", sum); 
} 
0

を見ることができます、あなたは合計を計算するには、次の式を使用することができます。 合計=合計+ numbersEntered。これは次のショートカット演算子と同じです sum + = numbersEntered; あなたはnumbersEnteredに元の合計を加えて合計 に復元しますが、注意してください: 0で合計を初期化するのを忘れないでください。

0

initialyのnumbersEntered変数に値がないため、プログラムが機能しませんでした。 while条件は最初に評価する必要があるため、最初に数値を読み取る必要があります。これは非常に簡単にこのへの道である:

int main() 
{ 
    int numbersEntered, sum=0; 
    printf("Enter the first number: "); 
    while (scanf("%d", &numbersEntered) > 0 && numbersEntered > 0) 
    { 
     printf("Enter another number to be added to the sum: "); 
     sum += numbersEntered; 
    } 
    printf("\nSum is: "); 
    printf("%d", sum); 
    printf("\n"); 
    return 0; 
} 

覚えておくべき事:読み取りを行った場合はscanf関数は、ゼロより大きな値を返します。そして、値を0に初期化する必要があります。なぜなら、宣言した場合、メモリからの値で初期化されるからです(プログラムからのすべての値は、値で初期化されます。