当前位置: 代码迷 >> C语言 >> 求助----为什么会这样
  详细解决方案

求助----为什么会这样

热度:133   发布时间:2005-05-29 19:26:00.0
求助----为什么会这样

求助----为什么会这样 编制一个程序,输入一个正整数,如果是素数,则输出该素数,否则输出该数的所有因子(除去1和本身) 我用k[32767]会出错,而且是在运行时输入较大的数时才出错,如100。与32767差不多大小都会出错。 #include"stdio.h" main() { int i,j,n,sum=0; printf("\ninput n:"); scanf("%d",&n); if(n<=0) printf("error"); else if(n<=2) printf("\n%d",n); if(n>=3) { int k[32767]; /*为什么不能达到这个数(32767)运行时在TC2下会死掉,在WIN-TC下 要求关闭DOS*/

for(i=2;i<n;i++) {

k[i-2]=n%i; { if(k[i-2]==0) { printf("%8d",i); k[i-2]=1; } else k[i-2]=0; sum=sum+k[i-2]; } }

if(sum==0) printf("\n%d",n);

}

getch(); }


----------------解决方案--------------------------------------------------------
一当定义了一个数组,则编译时则在内存中为它分配一个连续的空间,所以数组定义的太大可导致内存无法满足而使tc退出!
----------------解决方案--------------------------------------------------------
谢谢 成门口 大姐姐!~
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
  相关解决方案