为什么结果为0

1998msc |浏览379次
收藏|2019/01/21 07:31

满意回答

2019/01/21 07:38

#include <stdio.h>int main(){ int a; int i; int sum=0; printf("How many number?:"); scanf("%d",&a); int num[a]; printf("input number:\n"); for(i=0;i<a;i++) { scanf("%d",&num[i]); sum+=num[i]; } printf("%d",sum); double average=(double)sum/a; printf("%d",a); if(a>=0) printf("the else is %f",average); }应该改成这样,你这个程序应该是输出平均数。for 循环中for(i=0;i<a;i )应该改成for(i=0;i<a;i++)b变量其实是没有必要的。直接写成sum+=num[i]; 即可然后double average=sum/a;这一句应该改成double average=(double)sum/a;因为左边是double ,右边结果是int,会造成精度降低最后输出的时候,average为double,你却输出为%d,这是int才这样写,应该改成%f

Scott_tiger

其他回答(1)
  • 首先程序有误,for循环中: for(i=0; i<a; i ++ ) { scanf("%d",&num[i]); b=num[i]; sum += b; }但这不应该导致结果为 0.建议把 double average=sum/a;修改为 double average = (double) sum; average /= a;我这儿没有调试环境,你自己试试。
    回答于 2019/01/21 07:55
0人关注该问题
+1

 加载中...