不知道为什么我的c语言程序直接跳掉连输入都不能输,求大神求解!!!
#include<stdio.h>
int main()
{
    int j=0,i=0,a[1000][1000],b[1000][1000],n,m=0;
    while(scanf("%d",&n)!=EOF)
    {
        i=0;
      while(i<n)
     {
      scanf("%d",&a[i][m]);
      i++;  
     }
     for(j=n-1;j>0;j--)
     {
         for(i=j;i>0;i--)
         {
             if(a[i][m]<0&&a[i-1][m]>0)
            {
            b[i][m]=a[i][m];
            a[i][m]=a[i-1][m];
            a[i-1][m]=b[i][m];   
            }
         }
     }
     for(j=0;j<n-1;j++)
     {
      printf("%d ",a[j][m]);
     }
     printf("%d\n",a[n-1][m]);
     m++;
    }
    return 0;
}

图片说明

2个回答

a[1000][1000], b[1000][1000]的定义太大了,建议改成【100】【100】,你定义多大就会申请多大的内存,所以这个错误主要看你的机器的内存大小以及编译器允许的内存大小,二维数组没有定义的最大值的限制,主要是内存限制 。

a[1000][1000],b[1000][1000]
数组分配少一点,太大了如a[100][100] b[100][100]
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问