关于float和double的问题?
#include<stdio.h>
#include<math.h>
float digui(float x,int n)
{
float fac;
if(n==1) fac=sqrt(n+x);
else fac=sqrt(n+digui(x,n-1));
return fac;
}
main()
{
int n;
float x,fac;
printf("Input x n:");
scanf("%f,%d",&x,&n);
fac=digui(x,n);
printf("fac=%f\n",fac);
}
上面的程序中有的变量和函数定义成float型,运行结果如下:
Input x n:3.1,15
fac=4.388259
Press any key to continue
当把上面所有的float改成double型,运行结果就出错。结果如下:
Input x n:3.1,15
fac=-1.#IND00 //结果变成了这个
Press any key to continue
请高手解释下这是哪里的问题?
用的编译器是visual c++ 6.0