任意输入20个整数,统计非负数个数并计算非负数之和,这个错哪了??

#include<stdio.h>
main()
{
int n[20],counter,sum,i;
printf("input 20 numbers:\n");
for(i=0;i<20;i++)
{scanf("%d",&n[i]);
if(n[i]>=0)
{counter++;sum+=n[i];}
}
printf("counter=d%,sum=d%,counter,sum);
}

这里面主要有2个比较大的问题:

(1)相关变量没有初始化

对于程序中求和变量sum,统计个数变量counter,虽然声明了,但没有初始化,那么编译时从哪个数字开始就不知道了,因此会报错

添加一句

counter=sum=0;

 

(2)最后输出的语句有问题

首先,格式化输出整型是%d,不是d%;其次,少了一个双引号在后面。

printf("counter=d%,sum=d%,counter,sum);

改为:

printf("counter=%d,sum=%d",counter,sum);

 

最后结果为:

温馨提示:答案为网友推荐,仅供参考
相似回答