从键盘任意输入n个数(以0结束),统计正负数个数,并分别计算所有正数和负数的平均值的c语言程序

2025-03-13 04:04:32
推荐回答(4个)
回答1:

弄个简单的吧!……
/*从键盘任意输入n个数(以0结束),
统计正负数个数,
并分别计算所有正数和负数的平均值的c语言程序*/
#include
int main()
{
int n,sz=0,sf=0,pz,pf;//f代表要输入的数,sz,sf,pz,pf分别代表正负数的个数,正数和负数的平均值
int xz=0,xf=0;//正数和负数的和
scanf("%d",&n);
while(n!=0) //输入n个数,以0结束
{
if(n>0)
{
sz++;
xz+=n;

}

else if(n<0)
{
sf++;
xf+=n;
}
scanf("%d",&n);
}
pz=xz/sz;
pf=xf/sf;
printf("正数的个数为%d个\n",sz);
printf("负数的个数为%d个\n",sf);
printf("正数的平均值为%d\n",pz);
printf("负数的平均值为%d\n",pf);
}

回答2:

#include

void main()
{
int num ,positive_number = 0,negative_number = 0;
scanf_s("%d",&num);
while(num != 0)
{
if(num>0)
positive_number++;
else
negative_number++;
scanf_s("%d",&num);

}
printf("正数:%d\n负数:%d\n",positive_number,negative_number);

}

vs2012通过并测试成功
你的编译器可能需要把scanf_s("%d",&num);
去掉后面的_s 变成
#include

void main()
{
int num ,positive_number = 0,negative_number = 0;
scanf("%d",&num);
while(num != 0)
{
if(num>0)
positive_number++;
else
negative_number++;
scanf("%d",&num);

}
printf("正数:%d\n负数:%d\n",positive_number,negative_number);

}

回答3:

#include
void main()
{ int s,n1,n2,x;
n1=n2=s=0;
while ( 1 )
{ scanf("%d",&x);
if ( x==0 ) break;
else if ( x<0 ) n1++;
else n2++;
s+=x;
}
printf("正数有%d个,负数有%d个,平均值为%d\n",n2,n1,s/(n1+n2));
}

回答4:

#include
int main()
{
int i=0,j=0,n;
double si=0,sj=0;
while(scanf("%d",&n)&&n!=0)
{
if(n>0){i++;si+=n;}
else {j++;sj+=n;}
}
printf("pos=%d aver=%.2lf\n\
neg=%d aver=%.2lf\n",i,si/i,j,sj/j);
return 0;  
}