#include<stdio.h> #define N 9 int main() { int n,a[N][N],i,j; printf("Input n:"); scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n;j++) a[i][j]=(i+1)*(j+1); } for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%4d",a[i][j]); printf("\n"); } return 0; }

错误在于定义了一维数组a,但在赋值时却按二维数组的方式进行赋值。应该将数组a的定义改为二维数组。

修改后的代码如下:

#include<stdio.h>
#define N 9
int main()
{
   int n,a[N][N],i,j;
   printf("Input n:");
   scanf("%d",&n);
   for(i=0;i<n;i++)
   {
         for(j=0;j<n;j++)
            a[i][j]=(i+1)*(j+1);
   }
     for(i=0;i<n;i++)
   {
         for(j=0;j<n;j++)
            printf("%4d",a[i][j]);
            printf("\n");
   }
   return 0;
}
C语言二维数组错误分析及修正:#include<stdio.h>

原文地址: https://www.cveoy.top/t/topic/pftu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录