#include<conio.h>#include<stdio.h>float fun(int m){double y=0,d;int i;for(i=100;i<=m;i+=100){d=(double)i*(double)i;y+=1.0/d;}return y;}void main(){int n=2000;printf("\nThe result is %lf\n",fun(n));}
2 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
#include<conio.h>#include<stdio.h>double fun(int m) //返回值类型不符{ double y=0; //d无用,去掉 int i; for(i=100;i<=m;i+=100) { } return y;}void main(){ int n=2000; printf("\nThe result is %lf\n",fun(n));} |
如果 将i定义成double类型,则可能在for(i=100;i<=m;i+=100) 这里的循环控制出现偏差,因为浮点数的不精确性原因造成的。
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
#include<conio.h>
#include<stdio.h>
double fun(int m) //
返回值
类型不符
{
double y=0; //d无用,去掉
int i;
for(i=100;i<=m;i+=100)
{
}
return y;
}
void main()
{
int n=2000;
printf("\nThe result is %lf\n",fun(n));
}如果
将i定义成double类型,则可能在for(i=100;i<=m;i+=100)
这里的循环控制出现偏差,因为
浮点数
的不精确性原因造成的。
- 2 回答
- 0 关注
- 239 浏览
添加回答
举报
0/150
提交
取消
