用c++定义二维数组a[2][3]={12,13,18,56,75,20},求平均值,并找出元素中最大值及所在位置
时间: 2024-10-23 15:05:49 浏览: 16
在C++中,我们可以先定义二维数组并初始化,然后计算每行的平均值、整个数组的平均值以及找出最大值及其位置。下面是一个示例代码:
```cpp
#include <iostream>
#include <climits> // 包含INT_MAX用于比较
// 计算数组元素的平均值
double calculateAverage(int* array, int size) {
double sum = 0;
for (int i = 0; i < size; i++) {
sum += array[i];
}
return static_cast<double>(sum) / size;
}
// 找出数组中的最大值及其位置
void findMaxValueAndIndex(int** matrix, int rows, int columns, int& maxVal, int& row, int& col) {
maxVal = INT_MIN;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
if (matrix[i][j] > maxVal) {
maxVal = matrix[i][j];
row = i;
col = j;
}
}
}
}
int main() {
int a[2][3] = {{12, 13, 18}, {56, 75, 20}};
// 求每行的平均值
double rowAverages[2];
for (int i = 0; i < 2; i++) {
rowAverages[i] = calculateAverage(&a[i][0], 3);
}
// 计算整个数组的平均值
double overallAverage = calculateAverage(a, 2 * 3);
// 寻找最大值及其位置
int maxVal = INT_MIN;
int row = -1, col = -1;
findMaxValueAndIndex(a, 2, 3, maxVal, row, col);
// 输出结果
std::cout << "每行平均值:\n";
for (int i = 0; i < 2; i++) {
std::cout << "第" << (i+1) << "行: " << rowAverages[i] << "\n";
}
std::cout << "整个数组的平均值: " << overallAverage << "\n";
std::cout << "最大值: " << maxVal << ", 位置在第" << (row + 1) << "行, 第" << (col + 1) << "列\n";
return 0;
}
```
这个代码首先计算了每一行的平均值,然后计算整个数组的平均值。接着查找数组中的最大值及其所在的行和列索引。注意这里假设初始的最大值为整数最小值INT_MIN,以便于比较。
阅读全文