[英]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.