问题描述
- 不知道哪里有问题,打印出来的result都是零!
-
#includeint main()
{
int n;
int m=1;
float b;
float a=0.99;
float result;for(n=1 ;n<=300;n++) { m=m*n; } for(;n>=4;n--) { b=a*b; } result= (float)m*b; printf("%f",result);
}
解决方案
第二个for n初始值没有 默认0
解决方案二:
默认n=0,你只是在第一个for循环里面n=1;这时局部变量,第二个for里面n是默认值,即n=0;所以不会执行第二个for,故b为float的默认值,
这时候m * b的结果就这样了
解决方案三:
1).值没有初始化 n还好,第一次循环就初始化了,但是b没有初始化
2).300的阶乘是一个非常大的数字,不是一个int或者long就能表示的,
时间: 2024-10-01 14:57:15