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