C++クラスの割り当てを行っています。この割り当てでは、cinから数値を読み取り、それらを合計して、whileループを使用して0が入力されたときに停止するプログラムを作成する必要があります。
私はコードを書き、必要な結果を得ました。しかし、結果を再印刷し続けるwhileループで立ち往生しています。結果を一度印刷した後、このループを終了するためのアドバイスを誰かに教えてもらえますか?
これが私のコードです:
int main ()
{
int i(1), sum(0);
int sum2(0);
const int max(10);
cout << "Enter numbers, one per line. Enter 0 to end:" << endl;
while (i!=0)
{
cin >> i;
sum += i; //add current value of i to sum
sum2 += 1;
}
while (i==0)
{
if (sum < 100) // If total is less than 100
cout << "Thank you. The total was " << sum << endl
<< "The total number of inputs reads: " << sum2 << endl
<< "The total is less than 100." << endl ;
else // Else total is greater than 100
cout << "Thank you. The total was " << sum << endl
<< "The total number of inputs reads: " << sum2 << endl
<< "The total is greater than 100." << endl ;
}
} //End of Int Main
うまくいけば、それはうまくいきました。申し訳ありませんが、各行に番号を付けて投稿する方法がわかりません。また、while(i == 0)をifステートメントif(i == 0)に変更しようとしましたが、0を入力するとプログラムが閉じます。誰かが有益なアドバイスを持っていますか?私はそれをお願い申し上げます。^ _ ^
更新:申し訳ありませんが、入力の数を追跡するループカウンター、合計値が100未満か大きいかを判断するコメント、および合計値を判断するステートメントも含める必要があることを忘れました。入力。これが、最後にifelseステートメントがある理由です。無限ループの原因であることがわかったので、最後のwhileステートメントを取り出してみましたが、そうしても結果が表示されません。コードを次のように変更しました。
int main ()
{
int i(1), sum(0);
int sum2(0);
const int max(10);
cout << "Enter numbers, one per line. Enter 0 to end:" << endl;
while (i!=0)
{
cin >> i;
sum += i; //add current value of i to sum
sum2 += 1;
}
if (sum < 100) // If total is less than 100
cout << "Thank you. The total was " << sum << endl
<< "The total number of inputs reads: " << sum2 << endl
<< "The total is less than 100." << endl ;
else // Else total is greater than 100
cout << "Thank you. The total was " << sum << endl
<< "The total number of inputs reads: " << sum2 << endl
<< "The total is greater than 100." << endl ;
} //End of Int Main
私の出力は
Enter numbers, one per line. Enter 0 to end:
7
8
6
5
5
9
8
0
Thank you. The total was 48.
The total number of inputs read: 8
The total is less than 100.