c++返回二维数组的最大元素和它所在的行、列号?

代码在图片中,求指教!!!

在 C++ 中,可以使用函数返回二维数组的最大元素及其所在行、列号。下面是一个示例代码:

```cpp
#include <iostream>
using namespace std;

const int ROWS = 3;
const int COLS = 4;

void findMax(int arr[][COLS], int& maxVal, int& row, int& col) {
maxVal = arr[0][0];
row = 0;
col = 0;

for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (arr[i][j] > maxVal) {
maxVal = arr[i][j];
row = i;
col = j;
}
}
}
}

int main() {
int arr[ROWS][COLS] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};

int maxVal, row, col;
findMax(arr, maxVal, row, col);

cout << "数组的最大元素为:" << maxVal << endl;
cout << "它所在的行号为:" << row + 1 << endl; // 行号从 1 开始
cout << "它所在的列号为:" << col + 1 << endl; // 列号从 1 开始

return 0;
}
```

在上述代码中,我们定义了一个常量 `ROWS` 和 `COLS`,分别表示二维数组的行数和列数。然后,我们实现了一个名为 `findMax()` 的函数,用于查找并返回二维数组的最大元素及其所在行、列号。在函数内部,我们首先将最大元素初始化为数组的第一个元素 `arr[0][0]`,然后遍历整个数组,每次比较当前元素和最大元素的大小,并更新最大元素及其所在行、列号。最后,在 `main()` 函数中调用 `findMax()` 函数,并输出计算结果到控制台中。

需要注意的是,在实际应用中,还需要考虑越界异常等问题,以确保程序的正确性和稳定性。
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-03-27
int max=a[0][0];
for(int i=0;i<3;i++)
for(int j=0;j<2;j++)

if(a[i][j]>max){
max=a[i][j];

*r=i;

*c=j;

}
return max;追答

嗯,应该在int max=a[0][0];后面加上*r=0;*c=0;

本回答被提问者采纳
第2个回答  2020-03-29
int max=a[0][0];
for(int i=0;i<3;i++)
for(int j=0;j<2;j++)

if(a[i][j]>max){
max=a[i][j];

*r=i;

*c=j;

}
return max;

c++返回二维数组的最大元素和它所在的行、列号?
cout << "数组的最大元素为:" << maxVal << endl;cout << "它所在的行号为:" << row + 1 << endl; \/\/ 行号从 1 开始 cout << "它所在的列号为:" << col + 1 << endl; \/\/ 列号从 1 开始 return 0;} ```在上述代码中,我们定义了一个常量 `ROWS` 和 `COLS`,分别...

c++输入一个5行5列的二维数组,求最大值和最小值其对应行列的位置...
Console.WriteLine("最大数为:{0},位置是:第{1}行,第{2}列",max,max_row,max_col);Console.WriteLine("最小数为:{0},位置是:第{1}行,第{2}列",min,min_row,min_col);Console.WriteLine("对角线上的元素之和为:{0}",sum);} } return0;...

c++中用二维数组,循环语句求最大值
```c++ include using namespace std;const int ROW = 2; \/\/ 行数 const int COL = 3; \/\/ 列数 int main() { int arr[ROW][COL] = {{5, 8, 6}, {9, 2, 4}}; \/\/ 定义二维数组并初始化 int max_value = arr[0][0]; \/\/ 初始化最大值为数组第一个元素 for (int i ...

用c++编写
该函数用整形指针变量、一维数组的元数个数做形参,返回值为一维数组的平均值。(3)寻找一个6*6的二维整形数组的最大元数值、最大元数值所在的行号和列号的任务由函数Max()完成。该函数用指向一维数组的指针变量、二维数组的行数、存放最大元数值所在的行号的指针和存放最大元数值所在的行号的指针做...

编写C++程序,求二维数组中的全部元素之和
include<stdio.h> void main { int m,n;int a[10][10];printf("请输入二维数组的行数和列数");scanf("%d%d",&m,&n);for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ scanf("%d",&a[i][j]);sum+=a[i][j];} } printf("全部元素和为%d",sum);} ...

c++找出二维数组中最大值的问题
include<stdio.h>int fun(int ha, int b[][4], int h[2]);int main(){int a[10][4], c, max, i, j, z[2];scanf("%d", &c);for (i=0; i<c; i++)for (j=0; j<4; j++)scanf("%d", &a[i][j]);max=fun(c, a, z);printf("最大值array[%d][%d]=%d\\n...

用C++怎么确定文件中二维数组的行列数
x = (int *) malloc(sizeof(int) * n); \/\/ 动态分配一维数组 for(i=0;i<n;i++) fscanf(fin,"%d",&x[i]); \/\/ 读入数据,存于一维数组 fclose(fin);for(i=0;i<n;i++) printf("%d ",x[i]);\/\/ 若输入行或列数,这里可以算下标。j 行 i 列 一维下标 index = j ...

C++找出二维数组的所有鞍点。所谓鞍点就是在该位置上的元素在该行上最...
include <string.h> define M 5 define N 4 struct COORDINATE{ int x;int y;int sts;}std[M];int max_ary(int ary[M][N],int row,int length){ int i;int tmp;int rst;rst = 0;tmp = ary[row][0];for(i=1;i<length;i++){ if(tmp<ary[row][i]){ rst = i;tm...

C++怎么实现在执行程序时输入二维数组的行数和列数,然后输入数组中各元...
动态创建二维数组 int x,y;count<<"输入行数:";cin>>x;count<<"输入列数:";cin>>y;int** s=new int*[x];for(int i=0;i<x;i++){ s[i]=new int[y];}\/\/调用时和数组一样 s[x][y]

c++二维数组排序问题
你好,我先说一下算法吧,先把二维数组赋值到一个一维数组,然后利用for循环依次把第一个数和其他数依次比较,每次比较把较大数放在后面,一次循环下来数组中最大的数就在最后面了,做了(n-1)*(n -1)此比较换位后,数组就是升序数组了,然后循序输出数组值就OK了。include <stdio.h> void ...

相似回答