不知哪里出错;C语言:从键盘输入任意20个整型数,统计其中的负数个数并求所有正数的平均值 保留两位小数

2024-11-08 12:36:11
推荐回答(4个)
回答1:

用C实现,如是其他语言,可移植

#include

void main()

{ int i,j,n,NoZ=0,NoF=0,ZX[20];

for(i=0;i<20;i++)

{ printf("输入第 %d 个正整数或负整数\n",i+1);

scanf("%d",&n);

if(n<0)

NoF++;

else

{j=NoZ+1;

while(j>=0 && ZX[j-1]>n)

{ZX[j]=ZX[j-1];j--; }

ZX[j]=n;

NoZ++;

}

}

printf("你共输入%d个负数,%d个正数\n",NoF,NoZ);

printf("正数从小到大依次是:\n");

for(j=1;j<=NoZ;j++)

printf("%d",ZX[j]);

}

回答2:

你打算输入的数据是整数,或者小数,但是你的程序中你定义的是char c;
接着你进行判断C是否小于0,我和你说,无论你输入什么,C都是大于零的,定义的数据类型不对;
另外,我建议在输出语句中可以加些辅助的信息,比如说printf("请输入语句,此时数据是多少");这样的信息,有利于你去查看,
帮你指出问题,代码自己试试,如果你是为了完成作业,我们可以给你代码,如果你是为了编程,我强烈建议自己调试,错了,代码发上来,我们帮你指出,同勉共进!

回答3:

#include
void main()
{
int a[20],N=0,i,sum=0,b; //N是负数个数,M是正数和的平均数 b是正数的个数
float M;
for(i=0; i<20; i++)
scanf("%d",&a[i]); //输入20个数
for(i=0; i<20; i++)
{
if(a[i]<0)
{
N++; //N统计负数的个数
}
if(a[i]>0)
{
sum+=a[i];
}
}
b=(20-N);
M=(int)sum/b;
printf("个数:%d 平均数:%.2f",N,M);
}
最佳回答简直是答非所问。

回答4:

scanf多了一个