#include<stdio.h>
main()
{
int a[3][6],b,c,d,x,d1=0,d2=0,x1=0,x2=0,*p;
printf("输入一个3×6的二维整型数组\n");
d=a;
x=a;
p=a;
for(b=0;b<3;b++)
for(c=0;c<6;c++)
{
scanf("%d",&a[b][c]);
if(d<a[b][c]) { d=a[b][c];d1=b;d2=c;}
if(x>a[b][c]) { x=a[b][c];x1=b;x2=c;}
p++;
}
printf("最大值:%d,行下标:%d,列下标:%d\n最小值:%d,行下标:%d,列下标%d\n",d,d1,d2,x,x1,x2);
}
d=a;变成 d=a[0][0];又可以了,为什么呢
为什么x 正确呢
为什么x 正确呢
追答x也不正确,你一开始赋给了x一个非法值,但是在计算机中x仍然会有一个有效值,然后碰巧这个值恰好又比你输入的第一个值大,所以x马上就变成了你的第一个值,接着运行正常。
逻辑上仍然是错误的。