为什么自定义的fun没执行呢
c语言吧
全部回复
仅看楼主
level 2
亦_亦de梦 楼主
t=1-1/2-1/3-......-1/m
#include <stdio.h>
double fun (int m);
int main()
{
int m;
double result;
printf("m:\n");
scanf("%d",&m);
result=fun(m);
printf("The result is %lf\n",result);
return 0;
}
double fun(int m)
{int sum=0,i;
double t;
if(m>1){
for(i=2;i<=m;i++){
sum=sum+1/(double)i;
} t=1-sum;}
else t=1;
return t;
}
2016年03月26日 04点03分 1
level 1
准确的来说是sum=sum+1/(double)i;这句语句根本就没运行,sum永远为0[冷]
2016年03月26日 04点03分 2
[委屈]为神马
2016年03月26日 04点03分
@亦_亦de梦 因为你的sum是int型,1/2以上的数 必然是浮点型,所以你后面的sum=sum+ 永远都是0,浮点型被计算机取整了
2016年03月26日 04点03分
level 9
[滑稽]你就非要写成 (double)i 吗[滑稽]
2016年03月26日 04点03分 4
level 10
sum改成double类型
2016年03月26日 04点03分 5
[泪]请看楼下
2016年03月26日 05点03分
回复 亦_亦de梦 :i改成int型[喷][喷]不然怎么自增
2016年03月26日 05点03分
@亦_亦de梦 同时sum=sum+1/i;改为sum=sum+1.0/i;
2016年03月26日 05点03分
@free逍遥星空 (⊙o⊙)哦原来只有整型才能自增。。。谢谢
2016年03月26日 05点03分
level 2
亦_亦de梦 楼主
结果还是不对哎。。。但是我不按函数调用写,输出就对了。。。为啥啊
#include <stdio.h>
double fun(int m);
int main()
{
int m;
scanf("%d",&m);
printf("The result is %lf\n",fun(m));
return 0;
}
double fun(int m){
double t,i,sum;
if(m>1){
for(i=2;i<=m;i++){
sum=sum+1/i;
} t=1-sum;}
else t=1;
return t;
}
2016年03月26日 05点03分 6
1