从输入任意个整型数,统计其中的负数个数并求所有非负数的平均值,结果保留一位小数,如果没有非负数,则平均值为0
本题有多组输入数据,输入到文件末尾,请使用while(cin>>)读入,数据范围小于1e6。
1.解题思路
题目比较简单,但规定了要使用while(cin>>)来读入数据,这里需要注意需要EOF(文件结束标记)来终止循环,windows下使用“ctrl+z”组合键来跳出循环。
输出时注意数据格式,是保留一位小数,sum为整型,需要转化为double型。
2.代码
#include<iostream>
using namespace std;
int main()
{
int m=0,n=0,sum=0;
int num;
while(cin>>num)
{
if(num>=0)
{
sum+=num;
n++;
}
m++;
}
cout<<m-n<<endl;
printf("%.1lf",(double)sum/n);
return 0;
}
3.结果
1 2 3 -1^Z
1
2.0