C程序运行出现floating point error:domain ,怎么回事啊?

来源:百度知道 编辑:UC知道 时间:2024/06/24 11:38:55
报错的程序如下:
#include <stdio.h>
main()
{ float s[5];
int i,sz=0;
for(i=0;i<5;i++)
scanf("%d",s+i);
for(i=0;i<5;i++)
sz+=s[i];
printf("\n%f",(float)sz);
}
编译成功但是运行时就报出如上错误,这是怎么回事啊?该怎样改呢??
先谢谢了。
错误我是明白了
主要是不知道为什么会报domain这个错误呢,这不是域的意思吗?

对比下面程序看一下吧~~
#include <stdio.h>
void main()
{
float s[5],sz=0.0;
int i;
for(i=0;i<5;i++)
scanf("%f",&s[i]);
for(i=0;i<5;i++)
sz+=s[i];
printf("%f",sz);
}

&要加呀!!!

二楼的懂c么?scanf("%d",s+i); 把%d改成%f就好了,根本不用在s+i前面加&,因为s+i本来就已经是指针了

程序应该没什么错。main()前加void。还有要得到正确结果得把scanf中的%d换成%f

#include <stdio.h>
void main()
{
float s[5];
int i,sz=0;
for(i=0;i<5;i++)
scanf("%f",s+i);
for(i=0;i<5;i++)
sz+=s[i];
printf("\n%f",(float)sz);
}

我认为错误的原因是数据类型不对;

问题出在scanf("%d",s+i);这一行,只要把%d改成%f就可以了。

mian前加void试下格式转换