连续输入若干个整数,输入0结束。统计其正整数的个数,并计算其中正整数的总和、平均值并输出。c++

2025-02-28 02:55:57
推荐回答(4个)
回答1:

#include
using namespace std;
int main()
{
int a,b;
float c; //平均数应为浮点型,因为结果不一定是整数
int n;
cout<<"请输入若干个整数n:";
for(a=0,b=0;;a++,b+=n,c=1.0*b/a) //整数相除,结果还是整数,会丢失小数部分,要乘1.0
{
cin>>n;
if(n==0)break; //判断相等要用==
}
cout<<"个数="< cout<<"总和="< cout<<"平均数="< return 0;
}

如果有帮助请采纳!
你最后的0是不会被统计进去的,因为break了,楼下的解释有问题。

回答2:

#include
using namespace std;
int main()
{
int a,b,c;
int n;
cout<<"请输入若干个整数n:";
for(a=0,b=0;;a++,b+=n,c=b/a)
{
cin>>n;
if(n=0)break; //应该用if(n==0) 判断写错了。if(n=0)是将0赋值给n了,再来判断n的值.永远是false
}
cout<<"个数="< cout<<"总和="< cout<<"平均数="< return 0;
}

//然后你算的个数和平均数连最后输入的0也算进去了。

回答3:

#include
using namespace std;
int main()
{
int a,b,n;
float c;//平均数用浮点数统计
cout<<"请输入若干个整数,以0结束:";
for(a=0,b=0;;a++,b+=n)//计算平均数在循环结束后算一次即可
{
cin>>n;
if(n==0)break;//是n==0,不是n=0
}
c=1.0*b/a;//使整数除法转为浮点数除法
cout<<"个数="< cout<<"总和="< cout<<"平均数="< return 0;
}

回答4:

for(a=0,b=0;;a++,b+=n,c=b/a) //无论正数都累加 错了
{
cin>>n;
if(n=0)break; //跳出条件错了
}
==>
for(a=0,b=0;;)
{
cin>>n;
if(n==0) break;//等于0跳出
if(n>0) a++,b+=n,c=b/a; //大于0才累加及计算平均值
}