每次用戶輸入一個整數時,我都可以得到總和,直到輸入負數或非整數。問題是我的總和計算結果是關閉的。 I.E用戶放1000;總和輸出1111,然後用戶輸入2000,它總計爲3333.只要有任何建議,讚賞。我仍然會嘗試一下我的編碼。C正確計算總和
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int j , i = 0, k = 0,number;
double sum = 0;
cout << "Enter Positive integer number: ";
while(cin >> number)
{
cout << endl;
if(number < 0)//test if the number is negative
{
cout << "Ending program since user has input a negative number" <<endl;
break;
}
int temp = number;
int p = 1;
while(temp > 0) //counting number of digits
{
sum = sum+temp; //Sum attempt.
temp /= 10;
p *= 10;
i++;
}
cout << sum << endl;
j = i % 3;
p /= 10;
while(i > 0)//display integer number with 1000 seperator
{
//this is giving me error
cout << char ((number/p) +'0');
number %= p;
p /= 10;
i--;
k++;
j--;
if ((k % 3 == 0 && i > 0)||(j == 0 && i > 2))
{
cout <<",";
k = 0;
}
}
cout << endl << endl;
cout << "This program will exit if you input any non-integer characters\n";
cout << "Enter another integer number: ";
}
return 0;
}
你確定你知道'while(temp> 0)'在做什麼循環嗎?以1000爲例,你得到'sum = 0 + 1000','sum = 1000 + 100','sum = 1100 + 10',最後'sum = 1110 + 1'。 – jonhopkins
感謝您的回覆。我是一個doofus大聲笑; /。我會用這些循環仔細重新進行總和計算。 – Christian
這只是一個簡單的錯誤;發生在我們身上。我只是不確定這是否是你的意圖。你是否試圖將數字的所有數字加起來,如1234 = 1 + 2 + 3 + 4 = 10? – jonhopkins