C语言 帮忙检查程序错在哪,怎么改?谢谢

 我来答
百度网友f170b16
2016-11-14 · TA获得超过1万个赞
知道大有可为答主
回答量:2271
采纳率:94%
帮助的人:619万
展开全部
数组的名字本身就是地址,所以不用加。单个变量需要加取地址。
scanf("%d",a[i]);
如有疑问请您追问,满意的话记得采纳哦~~~
更多追问追答
追问
还是不行,编译行但运行不行
追答

兄弟,我知道了,对不起,刚刚告诉你错了。数组名确实不加取地址符,但是你这个是数组中的某一个,所以你的没错。

你的问题出现在输入,我看你输入是用逗号分隔,你改用空格或回车进行分隔就行了。

RLXXQ
2016-11-14 · TA获得超过1154个赞
知道小有建树答主
回答量:833
采纳率:51%
帮助的人:243万
展开全部
#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;
}
你整型都改成浮点型即可
更多追问追答
追问
n是学生成绩个数用int也可行吧
追答
不行,因为你的n参与了除法运算,如果设置成int型会将结果强制转换成int型,小数部分会丢失。
当然你也可以把n设置成int型,但是要在运算中将n强制转换成浮点型,就是将n写为(float)n即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
My_Persistence
2016-11-14 · TA获得超过3469个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:441万
展开全部
你把代码复制粘贴出来下,这样也方便帮你修改呀。
更多追问追答
追问
帮我看看
追答
你把代码复制粘贴出来啊,光看图我没法修改啊,我跟你说还不如直接在你的代码里指出哪里出错了,然后帮你修改啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式