C语言怎么用变量定义一个二维数组

img

可以用malloc申请空间,代码如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int **a;
    int n,m,i,j;
    int s1=0,s2=0;
    scanf("%d %d",&n,&m);
    a=(int**)malloc(sizeof(int*)*n);
    for (i=0;i<n;i++)
    {
        a[i]=(int*)malloc(sizeof(int)*m);
        scanf("%d",&a[i][j]);
        if(i==0 || i==n-1 || j==0 || j==m-1)
            s1 += a[i][j];
        s2 += a[i][j];
    }
    s2 = s2 - s1;
    printf("%d",s1-s2);

    for(i=0;i<n;i++)
    {
        free(a[i]);
        a[i]=0;
    }
    free(a);
    a=0;

    return 0;
}

#include <stdio.h>
int main()
{
    int a[100][100];
    int N,M,i,j,s1=0,s2=0;
    scanf("%d%d",&N,&M);
    for(i=0;i<N;i++)
      for(j=0;j<M;j++)
          scanf("%d",&a[i][j]);
    for(i=0;i<N;i++)
      for(j=0;j<M;j++)
      {
          if(i==0 || j==0 || i==N-1||j==M-1)
                s1 += a[i][j];
          else
                s2 += a[i][j];
      }
    printf("%d",s1-s2);
    return 0;
}