【急!】 求整数的和与均值 计算概论编程题 c++

描述
读入n(1 < n < 10000)个非零整数,求他们的和与均值。

关于输入
输入有多行,每行有一个整数(通过读到0判断输入结束)。

关于输出
输出也只有一行,先输出和,再输出平均值(保留小数点后9位),两个数之间用空格分隔。

我做的是这样的
#include<stdio/h>
int main (){
int average,count=0;
int tmp;
int b;
scanf("%d\n",&tmp);
if (tmp==0) return;
average =tmp;
count ++;
while (tmp !=0 ){
scanf("&d\n",&tmp);
if (tmp != 0){
average +=tmp;
count ++;
}
b=average/count;
}
printf ("%d %.9lf\n",&average,&b);
return 0;
}
急!谢谢……

1. if (tmp==0) return; 改成 if (tmp==0) return 0;

2.
int b;
---------
b=average/count;
b应定义成float或double,且
b=average*1.0/count;

3.
if (tmp != 0){
average +=tmp;
count ++;
}
这里if判断多余的

4.
b=average/count;
这句应该在while循环外

5.
printf ("%d %.9lf\n",&average,&b);
输出不用取地址符号
printf ("%d %.9lf\n",average,b);
6.
最后,变量命名可读性较差。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-01
# include <iostream>
# include <iomanip>
using namespace std;
void main ()
{
float num,count ,sum,avger;
cout << "input:"<<endl;
cin >>num;
sum=num;
count=1;
while(num!=0)
{
cout << "input :" <<endl;
cin >> num;
sum+=num;
count++;
}
avger=sum/(count-1);//0多算了一次
cout << "sum="<< setprecision(9) <<setiosflags(ios::fixed ) << sum << " avger=" <<avger<<endl;

}本回答被网友采纳
相似回答