c语言具体问题

功能:求1到100之间的偶数之积。

------------------------------------------------*/

#include <stdio.h>

double fun(int m)
{

/**********Program**********/
float sum=1;
int i;
for(i=1;i<=50;i++)
{
sum=sum*m;
m=m-2;
}
return sum;

/********** End **********/

}

int main(void)
{
printf("ji = %.0f\n",fun(100));
return 0;
}

请问这个程序哪里不对

因为你的sum为float类型,它可以表示的最大的数为3.40282e+038(10^38),已经超过了1到100之间的偶数之积了。解决方案就是把sum改为double就好了,也注意在main函数里面的printf应该改为:printf("ji = %.0lf\n",fun(100));

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-24
是程序错误还是答案错误?
相似回答