首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-21 
请各位帮忙看看,为什么会这样呢编写一个可以容纳四十位数得球n!得程序,我的程序是下面这样的:可是在运行时

请各位帮忙看看,为什么会这样呢
编写一个可以容纳四十位数得球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!有多少位吧。

热点排行