回 帖 发 新 帖 刷新版面

主题:[讨论]c语言问题


编写求n的阶乘的函数,用此函数求多项式之和:1/1!+1/2!+1/3!+…1/n!,直到最后一项小于10的负5次方。
这是我自己编的:
#include<stdio.h>
float f(int n)
{
  float y;
  if(n==0||n==1) y=1;
  else y=f(n-1)*n;
  return(y);
}
void main()
{
 int n;
 float s,m;
 m=10.0;
 for(n=1,s=0;m>=10^(-5);n++)
 {
   m=1/f(n);
   s=m+s;
 }
   printf("The answer is %d\n",s);
}
但为什么显示Floating point error: Overflow. >Abnormal program termination。请问大家哪里出错了?

回复列表 (共3个回复)

沙发

printf中为%f撒……

板凳


改了,但还是一样的显示啊!

3 楼

我知道了,要把10^-5改为1e-5.

我来回复

您尚未登录,请登录后再回复。点此登录或注册