#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<limits.h>
void FindMax(int p[][3], int m, int n, int* pRow, int* pCol) {
int max = INT_MIN, i, j;
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
if (p[i][j] > max) {
max = p[i][j];
*pRow = i;
*pCol = j;
/* pRow = &i;
pCol = &j;
一旦将指针这样赋值,指针的值将永远指向i,j,不管是否再次进入if语句;
因此若写成这个形式需加break语句;
*/
}
}
}
//在m*n矩阵p中查找最大值,将其行下标存入pRow所指内存单元,将其列下标存入pCol所指内存单元
}
int main() {
int a[3][3];
int m = 2, n = 3;
int i, j, * pRow = &i, * pCol = &j;
for (i = 0; i < 2; i++) {
for (j = 0; j < 3; j++) {
scanf("%d", &a[i][j]);
}
}
FindMax(a, m, n, pRow, pCol);
i = *pRow, j = *pCol;
printf("%d %d %d", a[i][j], *pRow, *pCol);
return 0;
}
zzulioj 1160
最新推荐文章于 2024-08-14 07:21:13 发布
本文介绍了一个C++程序,通过FindMax函数在给定的m*n矩阵中查找最大值,并返回其行和列下标。程序使用了二维数组和指针,展示了如何在循环中更新最大值及其位置。在main函数中,用户输入矩阵元素并调用该函数,最后输出最大值及其坐标。
摘要由CSDN通过智能技术生成