各位看看,为什么if后面的前两个赋值语句不受控制,刚刚接触c语言,不太熟悉望解答
回答:顶级折磨呀,大哥,咱就是说,能不能把这个代码格式统一一下,咱换行就按换行的风格来,不换行就按不换行的风格来,不能这个不方便阅读的写法呀。这边参考一个C++的规范:https://zhuanlan.zhihu.com/p/71782780
用指针查找二维数组的最大值,较为规范的代码如下:
#include <stdio.h>
int main(){
int a[3][4];
int i, j, m, n;
int *p = &a[0][0];
for(i=0;i<3;i++){
for(j=0;j<4;j++){
scanf("%d", &a[i][j]);
}
}
// 说明:二维数组的指针走向是每次先走一维数组的长度,实际上的二维数组是很长的一维数组组成的,
// 当然在内存中,会按照内存连续分布,方便编译器计算下标
for(i=0;i<3;i++){
for(j=0;j<4;j++){
if(*p < *(p+i*4+j)){
m = i;
n = j;
*p = *(p+i*4+j);
printf("%d %d %d\n", i, j, *p);
}
}
}
printf("%d %d %d", m, n, *p);
}
/*
测试数据
1 2 3 4
5 6 7 8
9 10 11 12
*/
运行截图: