C语言 帮忙检查程序错在哪,怎么改?谢谢
3个回答
展开全部
#include <stdio.h>
int main()
{
int i;
float n=0;
float sum=0,a[50];
float ave=0,var=0;
for(i=0;i<50;i++)
{ scanf("%f",&a[i]);
if(a[i]>=0 && a[i]<= 100)
{
sum=sum+a[i];
n++;
}
else
break;
}
ave = sum/n;
for(i=0;i<n;i++)
{
var=var + (a[i]-ave)*(a[i]-ave);
}
printf("%f %f",ave,var);
return 0;
}
你整型都改成浮点型即可
int main()
{
int i;
float n=0;
float sum=0,a[50];
float ave=0,var=0;
for(i=0;i<50;i++)
{ scanf("%f",&a[i]);
if(a[i]>=0 && a[i]<= 100)
{
sum=sum+a[i];
n++;
}
else
break;
}
ave = sum/n;
for(i=0;i<n;i++)
{
var=var + (a[i]-ave)*(a[i]-ave);
}
printf("%f %f",ave,var);
return 0;
}
你整型都改成浮点型即可
更多追问追答
追问
n是学生成绩个数用int也可行吧
追答
不行,因为你的n参与了除法运算,如果设置成int型会将结果强制转换成int型,小数部分会丢失。
当然你也可以把n设置成int型,但是要在运算中将n强制转换成浮点型,就是将n写为(float)n即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把代码复制粘贴出来下,这样也方便帮你修改呀。
更多追问追答
追问
帮我看看
追答
你把代码复制粘贴出来啊,光看图我没法修改啊,我跟你说还不如直接在你的代码里指出哪里出错了,然后帮你修改啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询