看不明白

byy_00 2010-02-28 10:07:19
#include<stdio.h>
double fun(int n)
{
float num=1.0;
int i;
float y;
y=1.000000;
for(i=2;i<=n;i++)
{y-=1.0/i*i;}
return y;
}
main()
{
int m;
clrscr();
printf("Plese enter a number:");
scanf("%d",&m);
printf("\nThe result is %f\n",fun(m));
getch();
}
输入m=5
为什么输出结果是-3.000000
...全文
99 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cy330206 2010-02-28
  • 打赏
  • 举报
回复
for(i=2;i <=n;i++)
{y-=1.0/i*i;}
按照程序的意思当m=5时,结果是-3.000000;
等同于for(i=2;i<=5;i++)
{y=y-1;}
tang056 2010-02-28
  • 打赏
  • 举报
回复
clrscr(); 只在TC下运行
tang056 2010-02-28
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <conio.h>

float fun(int n)
{
// float num=1.0;
int i;
float y;
y=1.0;
for(i=2;i <=n;i++)
{
y-=(float)1.0/(i*i);
}
return y;
}

int main(void)
{
int m;
// clrscr();
printf("Plese enter a number:");
scanf("%d",&m);
printf("\nThe result is %f\n",fun(m));
getch();
return 0;
}
输入5,结果为0.536389
ruanjwei1986 2010-02-28
  • 打赏
  • 举报
回复
关注。。。。。。楼主早日解决问题
musiclee 2010-02-28
  • 打赏
  • 举报
回复
汗。。我真垃圾。。无视4楼和5楼吧
musiclee 2010-02-28
  • 打赏
  • 举报
回复
{y-=1.0/i*i;} // 这里 不是传统的除法运算是求最大公倍数
sumaoding 2010-02-28
  • 打赏
  • 举报
回复
y-=1.0/i*i;
这一句除以i后又乘以i相当于y=y-1.0,所以运行后就变成-3了
stardust20 2010-02-28
  • 打赏
  • 举报
回复
for(i=2;i <=n;i++)
{y-=1.0/i*i;} //这边1.0除i又乘与i相当于没有做什么还是1.0,改成y-=1.0/(i*i)加个括号
ithiker 2010-02-28
  • 打赏
  • 举报
回复
{y-=1.0/i*i;} 这句等价于 y=y-1.0/i*i;等价于y=y-1;
程序的原意可能是y-=1.0/(i*i);

70,035

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧