这是C语言函数调用求阶乘的改错题,看不出来哪里错了

#include <stdio.h>long fac(int num); int main( ){ int m; long r; printf("Please input m:"); scanf("%d",&m); r=fac(m); printf("The result is %ld尀n",r); return 0; }long fac(int num) { int i; long result; result=0; for(i=1,i<=num,i++) result=result*i; return result;}
2026年09月23日 17:46
有1个网友回答
网友(1):

你的C语言阶乘程序,在阶乘函数fac中有两个小问题,我帮你改好了,你看看吧.(改动的地方见注释)

#include 

long fac(int num); 

int main( )

{

 int m;

 long r;

 printf("Please input m:");

 scanf("%d",&m);

 r=fac(m);

 printf("The result is %ld\n",r);

 return 0;

 }

long fac(int num) 

{

 int i;

 long result; 

 result=1;//这里把result=0;改成result=1; 阶乘的初始值为1,否则,阶乘出来的值为0

 for(i=1;i<=num;i++)//这里把for-i循环中的分隔符逗号,改为分号;

  result=result*i;

 return result;

} 

运行结果
Please input m:6
The result is 720