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

大神们,有没有人能帮我解答下我这个程序问题在哪里啊

#include<stdio.h>
int fun(int m)
{
    double y=1.0;
    int i;
    for(i=2;i<=m;i++)
    {
        y+=1/(i*i);
    }
    return y;
}
int main()
{
    int m=5;
    printf("%f\n",fun(m));
}



正在回答

1 回答


我也是新手,我理解的是,i是整形,1/(i*i)的结果也是整形,即取整数部分。因此最后期望输出为1,想要输出小数的话在i*i前面加个强转


但我跑了下输出为0,这个原因是你定义的fun函数为int

而返回值y为double,出现返回值错误。将int改为double就好

1 回复 有任何疑惑可以回复我~
#1

慕粉13657293173 提问者

多谢,确实是这个原因。已运行成功
2017-04-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

大神们,有没有人能帮我解答下我这个程序问题在哪里啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信