#include<stdio.h> #define int a[3][2] int main() { int i,j,m=0,l,h; printf('Enter 6 integers:\n'); for(i=0;i<3;i++) { for(j=0;j<2;j++) scanf('%d',&a[i][j]); } for(i=0;i<3;i++) { for(j=0;j<2;j++) {printf('%4d',a[i][j]); if(m<a[i][j]) { m=a[i][j]; l=i; h=j; } printf('\n'); } } printf('max=a[%d][%d]=%d',l,h,m); }

错在哪了内容:在代码中定义了一个二维数组a[3][2],但是没有给数组元素进行初始化。在scanf函数中,对数组元素进行了赋值操作,但是由于数组没有初始化,所以数组中的元素是未知的值。因此,在找到最大值时,可能会出现错误的结果。

正确的做法是在定义数组时同时进行初始化,例如:

int a[3][2] = {{0}};

或者在使用数组前,先将数组元素初始化为一个较小的值,例如:

for(i=0;i<3;i++)
{
    for(j=0;j<2;j++)
        a[i][j] = INT_MIN;
}
C语言二维数组初始化错误及解决方法

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

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