C语言:求矩阵中的最大值,同时返回地址!
编程实现:求出矩阵中最大的元素值(并且返回他的地址);
#include <stdio.h> #include <stdlib.h> #include <Windows.h> #include <time.h> #include <math.h> //2023年5月21日18:04:10 学习练习此题 int main(void) { //数组下标从0开始哦! int juzhen[3][4] = { {12,14,17,18},{4,67,3,2},{4,58,1,7} }; int i, j, max,line, column; //行列下标索引都为零也就是第一个元素作为最大值 去和后面的比较; max = juzhen[0][0]; //把第一个元素地址赋值给max 用于和后面的元素比较; for (i = 0; i < 3; i++) { for (j = 0; j < 4; j++) { if (juzhen[i][j] > max) { max = juzhen[i][j]; //同时将下标索引号赋值给变量然后打印出他的下标索引号; line = i; //行 也就是数组中的层 column = j; //列 相当于数组中的列 } } } printf("矩阵中最大的元素值为:%d ",max); printf("最大值的地址为juzhen[%d][%d] ", line, column); return 0; }
注意点:首先要知道无论一维数组 还是二维数组 他们的元素起始地址索引下标都为0;
然后我们声明一个max来接收数组中的首地址元素,使用for循环嵌套进行遍历执行这个矩阵中的所有元素地址下标(也就是每个元素)。
最后,我们使用首地址元素值比较遍历的地址中(数组索引小标)的值,得出最大的值,赋值给max ,同时将最大值的地址(层、列)也赋值给我们事先声明 好的变量。
打印结果——》
运行结果为如下: