语言中算平均数老是出错,请求各位大侠帮帮忙(输不出正确值)
发布网友
发布时间:2024-10-04 12:15
我来回答
共4个回答
热心网友
时间:2024-10-04 12:45
#include<stdio.h>
int main()
{
int i,s,a,h;
float z;
printf("请输入同学的数量:");
scanf("%d",&a);
i=1;
while (i<=a)
{printf("请输入该同学的成绩:\n");
scanf("%d",&h);
i++;
s=s+h;
}
z=1.0*s/a;
printf("%f\n",z);
}
热心网友
时间:2024-10-04 12:45
z是浮点数,s和a都是整型,整型相除只能产生整型的。改为:z = 1.0*s / a;
还有,楼主你这个循环写得很诡异啊...for (i=0; i<a; ++a)多好,非要while啊...
热心网友
时间:2024-10-04 12:39
你的s和a都是整数,C语言里面整数相除的结果只是一个整数商,1/2=0,3/2=1,所以你的问题就是z=s/a这一句。你可以像楼上写的那样改,也可以写成
z=(float)s/a;
热心网友
时间:2024-10-04 12:40
//格式问题
#include<stdio.h>
int main()
{
int i,a;
float s,h; //参加统计的s和h定义为float
float z;
printf("请输入同学的数量:");
scanf("%d",&a);
i=1;
while (i<=a)
{printf("请输入该同学的成绩:\n");
scanf("%f",&h); //float输入格式是%f
i++;
s=s+h;
if(i<a);
continue;}
z=s/a;
printf("%f\n",z);
}