赵曙明托福口语小伴侣:编程问题

来源:百度文库 编辑:中科新闻网 时间:2024/05/11 20:32:01
这个编程有什么问题,帮我解决一下,谢谢
求n! n由用户输入
#include <stdio.h>
int jiecheng (int a)
{int c=1;
int i;
for(i=1; i<=a; i++)
c=c*i
return c;
}
main()
{int m,n;
printf("请输入一个数m|n");
scanf("%d,&m");
n=jiecheng(m);
printf("%d的阶乘是%d|n",m,n);
getchar();
getchar();
}
还是不对,最后出来的总是2的阶程呀

#include <stdio.h>
int jiecheng (int a)
{int c=1;
int i;
for(i=1; i<=a; i++)
c=c*i ;
return c;
}
main()
{int m,n;
printf("ÇëÊäÈëÒ»¸öÊým\n");
scanf("%d",&m);
n=jiecheng(m);
printf("%dµÄ½×³ËÊÇ%d\n",m,n);
getchar();
getchar();
}

一般阶乘都比较大,经常就超过了int型的最大值产生溢出,所以改成long型的比较合理

C=C*I 少了分号
变量的范围不要用INT 阶乘很大的 回超出范围