[英]C++ ; Write a program that reads in ten whole numbers
編寫一個程序,讀取十個整數並輸出所有大於零的數字之和,所有小於零的數字之和(將是負數或零),以及所有數字之和,無論是正、負或零。 用戶只輸入十個數字一次,用戶可以按任意順序輸入它們。 您的程序不應要求用戶分別輸入正數和負數。 現在修改這個程序,使其輸出所有正數的總和、所有正數的平均值、所有非正數的總和、所有非正數的平均值、所有正數和非正數的總和,以及輸入的所有數字的平均值。
這是我到目前為止...
#include <iostream>
using namespace std;
int main ()
{
int number, negative_sum=0, positive_sum=0, sum=0, average_neg,
average_pos, average;
int count=0, positiveCount=0, negativeCount=0;
cout << "Please Input 10 whole numbers(Each number should be separated by space or Enter)\n";
for(int i=0; i < 10; i++)
{
cin >> number;
if (number >= 0 )
{
positive_sum += number;
positiveCount++;
}
else
{
negative_sum += number ;
negativeCount++;
}
}
average_pos = positive_sum / positiveCount;
average_neg = negative_sum / negativeCount;
sum = positive_sum + negative_sum;
average = sum / count;
cout << "The Total sum of Positive Numbers is " << positive_sum << " and the average of \nThe postive numbers entered is ";
cout << average_pos<< endl;
cout << "The Total sum of Negative Numbers is " << negative_sum << " and the average of \nThe negative numbers entered is ";
cout << average_neg << endl;
cout << "The Total sum of numbers entered is " << sum << " and its average is "<< average << endl;
system("PAUSE");
return 0;
}
基本上它只是在我輸入數字后多次打印“請輸入 10 個整數(每個數字應以空格或 Enter 分隔)\\n”部分。
您的代碼的問題在於, average_pos = positive_sum / positiveCount;
行中出現零除以零除法average_pos = positive_sum / positiveCount;
average = sum / count;
和average_neg = negative_sum / negativeCount;
. 為了避免這種情況,您可以添加if
條件,僅當positiveCount
、 negativeCount
和count
are greater than 0
時才執行除法
此外,在您的代碼中,您將sum
除以count
行average = sum / count;
但在您的代碼中沒有任何地方增加count
。 您的for
循環也提前結束。
正確的修改代碼:
#include <iostream>
using namespace std;
int main ()
{
int number, negative_sum=0, positive_sum=0, sum=0, average_neg=0,
average_pos=0, average=0;
int count=0, positiveCount=0, negativeCount=0;
cout << "Please Input 10 whole numbers(Each number should be separated by space or Enter)\n";
for(int i=0;i<10;i++)
{
//cout<<"i is"<<i<<endl;
cin >> number;
if (number >= 0 )
{
positive_sum += number;
positiveCount++; count++;
}
else
{
negative_sum += number ;
negativeCount++; count++;
}
}
if(positiveCount>0)
{
average_pos = positive_sum / positiveCount;
}
if(negativeCount>0)
{
average_neg = negative_sum / negativeCount;
}
sum = positive_sum + negative_sum;
if(count>0)
{
average = sum / count;
}
cout<<average_pos;
cout << "The Total sum of Positive Numbers is " << positive_sum << " and the average of \nThe postive numbers entered is ";
cout << average_pos<< endl;
cout << "The Total sum of Negative Numbers is " << negative_sum << " and the average of \nThe negative numbers entered is ";
cout << average_neg << endl;
cout << "The Total sum of numbers entered is " << sum << " and its average is "<< average << endl;
system("PAUSE");
return 0;
}
#include <iostream>
using namespace std;
int main ()
{
int number, negative_sum=0, positive_sum=0, sum=0, average_neg = 0,
average_pos = 0, average = 0;
int count=0, positiveCount=0, negativeCount=0;
cout << "Please Input 10 whole numbers(Each number should be separated by space or Enter)\n";
for(int i=0; i < 10; i++)
{
cin >> number;
if (number >= 0 )
{
positive_sum += number;
positiveCount++;
}
else
{
negative_sum += number ;
negativeCount++;
}
}
average_pos = positive_sum / positiveCount;
average_neg = negative_sum / negativeCount;
sum = positive_sum + negative_sum;
average = sum / count;
cout << "The Total sum of Positive Numbers is " << positive_sum << " and the average of \nThe postive numbers entered is ";
cout << average_pos<< endl;
cout << "The Total sum of Negative Numbers is " << negative_sum << " and the average of \nThe negative numbers entered is ";
cout << average_neg << endl;
cout << "The Total sum of numbers entered is " << sum << " and its average is "<< average << endl;
system("PAUSE");
return 0;
}
嘗試這個
#include <iostream>
using namespace std;
int main ()
{
int number, negative_sum=0, positive_sum=0, sum=0, average_neg = 0,
average_pos = 0, average = 0;
int count=0, positiveCount=0, negativeCount=0;
cout << "Please Input 10 whole numbers(Each number should be separated by space or Enter)\n";
for(int i=0; i < 10; i++)
{
cin >> number;
if (number >= 0 )
{
positive_sum += number;
positiveCount++;
}
else
{
negative_sum += number ;
negativeCount++;
}
}
average_pos = positive_sum / positiveCount;
average_neg = negative_sum / negativeCount;
sum = positive_sum + negative_sum;
average = sum / count;
cout << "The Total sum of Positive Numbers is " << positive_sum << " and the average of \nThe postive numbers entered is ";
cout << average_pos<< endl;
cout << "The Total sum of Negative Numbers is " << negative_sum << " and the average of \nThe negative numbers entered is ";
cout << average_neg << endl;
cout << "The Total sum of numbers entered is " << sum << " and its average is "<< average << endl;
system("PAUSE");
return 0;
}
希望這可以幫助 ... :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.