mann滤筒:帮忙看看这个C++小程序.

来源:百度文库 编辑:高考问答 时间:2024/04/27 18:22:17
这是我写的一个求读到数组里的平均数并统计多少个数比平均数大的程序,但是大于平均数的个数(count)的统计是错的,本人菜鸟,恳请高手指点,先谢谢了!
#include<iostream>
const int Max=10;
int main()
{
using namespace std;
double donation[Max];
cout<<“Please enter the donation.\n“;
int i;
for (i=0;i<Max;i++)
{
cout<<“round #“<<i+1<<“:“;
while (!(cin>>donation[i])){
cin.clear();
while (cin.get()!=’\n’)
continue;
cout<<“Please enter a number: “;
}
}
double total=0.0;
double average=0.0;
int count=0;
for (i=0;i<Max;i++)
{
total+=donation[i];
average=total/Max;

if (average<donation[i])
count++;
}
cout<<average<<endl;
cout<<count;
cin.get();
cin.get();
return 0;
}

比较应该在求出全部平均数之后,而不能边求边比较。
正确代码:
#include<iostream>
const int Max=10;
int main()
{
using namespace std;
double donation[Max];
cout<<“Please enter the donation.\n“;
int i;
for (i=0;i<Max;i++)
{
cout<<“round #“<<i+1<<“:“;
while (!(cin>>donation[i])){
cin.clear();
while (cin.get()!=’\n’)
continue;
cout<<“Please enter a number: “;
}
}
double total=0.0;
double average=0.0;
int count=0;
for (i=0;i<Max;i++)
{
total+=donation[i];
average=total/Max;
}
for (i=0;i<Max;i++)
{
if (average<donation[i])
count++;
}
cout<<average<<endl;
cout<<count;
cin.get();
cin.get();
return 0;
}