功能:求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));