为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这个函数不能直接定义成double i吗?

为什么这个函数不能直接定义成double i吗?

C# C
斯蒂芬大帝 2022-04-20 19:15:52
#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) 这里的循环控制出现偏差,因为浮点数的不精确性原因造成的。


查看完整回答
反对 回复 2022-04-24
?
小怪兽爱吃肉

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)
这里的循环控制出现偏差,因为
浮点数
的不精确性原因造成的。



查看完整回答
反对 回复 2022-04-24
  • 2 回答
  • 0 关注
  • 239 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号