
n=ni;
改为
i=in
因为你的n才是循环的条件,在这里面的n是不断变化的,这个循环应该是转不到头的
如果你的意思并非如此,那你需要再设定一个变量来替代这个n
如果 n! 很大 请用:
//=============================================
//该程序的计算结果正确与否可以通过google计算器验证,但是google的阶乘运算目前(2009/08/04)只能到170!,该程序能运算10000以下整数的阶乘;
//通过分析该模拟算法知道:可以通过调大MOD_OF_ARY值提高计算效率,但是要保证MOD_OF_ARY 与MAX_NUM的积小于所在平台的有符号整形数最大值(即不至于溢出),与此同时printf函数调用中的格式输出宽度也要做相应的调整(即该有效输出位宽度数值上等于MOD_OF_ARY后面零的个数);并且MOD_OF_ARY不能小于MAX_NUM
>
函数正确。
printf("&d\n",factorial(n));写错了,应该是printf("%d\n",factorial(n));——即把&换成%。
输入不超过13,否则会溢出出错。
#include<stdioh>
void main()
{
int i,n;
double m=10;
printf("input number:");
scanf("%d",&n);
i=n;
while(n>0)
{
m=mn;
n--;
}
printf("%d!=%0lf\n",i,m);
}
因为你用的是if(b<=n+1),只会执行一次,而且逻辑也有问题;
你可以试试
if (b<=n+1)
{ b=a+1;
y=(ab);
b++;
a=b;
}
替换成:
while(a<=n)
{
y=a;
a++;
}
以上就是关于C语言设计:设计一个阶乘的程序 比如输入4 输出24 我哪出错了 全部的内容,包括:C语言设计:设计一个阶乘的程序 比如输入4 输出24 我哪出错了 、设计一个求整数 n的阶乘程序、求阶乘的c语言程序运行不对等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)