各位看看,为什么if后面的前两个赋值语句不受控制,刚刚接触c语言,不太熟悉望解答
1条回答 默认 最新
- bingbingyihao 2022-10-31 23:30关注
回答:顶级折磨呀,大哥,咱就是说,能不能把这个代码格式统一一下,咱换行就按换行的风格来,不换行就按不换行的风格来,不能这个不方便阅读的写法呀。这边参考一个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 */
运行截图:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报