读书人

请各位帮忙看看为什么会这样呢解决思

发布时间: 2012-03-21 13:33:15 作者: rapoo

请各位帮忙看看,为什么会这样呢
编写一个可以容纳四十位数得球n!得程序,我的程序是下面这样的:可是在运行时29!竟然等于0117...........,同时弹 出对话框说内存 不能被写,不知道哪儿出现问题,请高手提出
#include <stdio.h>

void main()
{
int Data[40];
int Digit;
int N;
int i,j,r,k;

for(i=1;i <41;i++)
Data[i]=0;
Data[0]=1;
Data[1]=1;
Digit=1;


printf( "Enter a number ");


scanf( "%d ",&N);


for(i=1;i <N+1;i++)


{
for(j=1;j <Digit+1;j++)
Data[j]*=i;

for(j=1;j <Digit+1;j++)
{
if(Data[j]> 10)

{
for(r=1;r <Digit+1;r++)

{
if(Data[Digit]> 10)
Digit++;
Data[r+1]+=Data[r]/10;
Data[r]=Data[r]%10;
}
}
}
printf( "%d!= ",i);
for(k=Digit;k> 0;k--)
printf( "%d ",Data[k]);
printf( "\n ");


}
}




[解决办法]
你先找个计算器看看29!有多少位吧。

读书人网 >C++

热点推荐