| 发表于:2007-03-29 15:05:57 楼主 |
编写一个可以容纳四十位数得球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 "); } } |
|
|
|
|