请看下下面的代码哪里错了!

来源:百度知道 编辑:UC知道 时间:2024/05/30 08:39:34
用数组求100的阶乘的代码

#include <stdio.h>
int main()
{
int i;
int j;
int k;
int m;
int n;
int a[1000];
int b[1000];

a[0] = 1;
for (i = 1; i <= 100; i++)
{
for (j = 1; j <= i; j++)
{
for (k = 0; k < 1000; k++)
{
b[k] = b[k] + a[k];
for (m = 0; m <= k; m++)
{
if (b[m] > 9)
{
b[m] = b[m] - 10;
b[m + 1]++;
}
else
break;

}
a[k] = b[k];
b[k] = 0;
}
}
}

for (i = 0; i < 1000; i++)
{
if (a[i] != 0)
break;
}

for (k = i; k >= 0; k--)
{
printf("%d", a[k]);
}
}
各位,这个用数组绝对可以算出来的!!!

为什么会怎么复杂呢?
求阶乘直接用个 for循环不就可以了
#include "stdio.h"
main()
{
int i,t=1;
for(i=1;i<=100;i++)
t=t*i;
printf("%ld\n");
}

数组没有赋初始值。给数组赋上初始值就可以了

我提示你一下 数据类型的问题 int 取值范围在-32768~+32767 long 也不过2亿。 10的阶乘就6位数了,你弄1000以内的?
《无情一匕》他写的对了,但是需要改一下:
#include "stdio.h"
main()
{
long i,t=1;
for(i=1;i<=10;i++) // i<=10 是10以内的阶乘, 别弄太大了 求不出来.
t=t*i;
printf("%ld\n");
}