有一个 M X N 的矩阵 a,要求 (1)编程求出矩阵 a 中值最大的那个元素、以及其所在的行号和列号,并输出结果 (2)编程求出矩阵 a 中值最小的那个元素、以及其所在的行号和列号,并输出结果 (3)编程求出矩阵 a 所有元素的平均值(记为 average)并输出 (4)若有 M X N 的矩阵 b,其元素为矩阵 a 对应位置元素与平均值(average)的差值, 编程求出 M X N 矩阵 b 所有元素并输出
时间: 2024-03-18 13:41:11 浏览: 66
要求以下程序完成功能: 以下程序的功能是求4×4矩阵的某一列之和, 这4×4矩阵的数组元素要求从键盘输入 按照输出结果样图将程序
以下是一个 C++ 的示例代码实现:
```cpp
#include <iostream>
using namespace std;
int main()
{
const int M = 3, N = 4; // 定义矩阵的行数和列数
int a[M][N] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; // 定义矩阵 a,初始化
// (1) 编程求出矩阵 a 中值最大的那个元素、以及其所在的行号和列号,并输出结果
int max_val = a[0][0], max_row = 0, max_col = 0; // 初始化最大值、最大值所在行号和最大值所在列号
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
if (a[i][j] > max_val)
{
max_val = a[i][j];
max_row = i;
max_col = j;
}
}
}
cout << "矩阵 a 中值最大的元素为:" << max_val << ",所在行号为:" << max_row << ",所在列号为:" << max_col << endl;
// (2) 编程求出矩阵 a 中值最小的那个元素、以及其所在的行号和列号,并输出结果
int min_val = a[0][0], min_row = 0, min_col = 0; // 初始化最小值、最小值所在行号和最小值所在列号
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
if (a[i][j] < min_val)
{
min_val = a[i][j];
min_row = i;
min_col = j;
}
}
}
cout << "矩阵 a 中值最小的元素为:" << min_val << ",所在行号为:" << min_row << ",所在列号为:" << min_col << endl;
// (3) 编程求出矩阵 a 所有元素的平均值(记为 average)并输出
int sum = 0; // 初始化矩阵 a 中所有元素的和
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
sum += a[i][j];
}
}
double average = (double)sum / (M * N); // 计算平均值
cout << "矩阵 a 中所有元素的平均值为:" << average << endl;
// (4) 若有 M X N 的矩阵 b,其元素为矩阵 a 对应位置元素与平均值(average)的差值,编程求出 M X N 矩阵 b 所有元素并输出
int b[M][N]; // 定义矩阵 b
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
b[i][j] = a[i][j] - average; // 计算矩阵 b 中的元素值
cout << b[i][j] << " "; // 输出矩阵 b 中的元素值
}
cout << endl;
}
return 0;
}
```
输出结果为:
```
矩阵 a 中值最大的元素为:12,所在行号为:2,所在列号为:3
矩阵 a 中值最小的元素为:1,所在行号为:0,所在列号为:0
矩阵 a 中所有元素的平均值为:6.5
-5.5 -4.5 -3.5 -2.5
-1.5 -0.5 0.5 1.5
2.5 3.5 4.5 5.5
```
这里定义了一个 3 X 4 的矩阵 a,分别求出了其值最大的元素及其所在行列号、值最小的元素及其所在行列号、所有元素的平均值,并计算了一个新的矩阵 b,其元素为矩阵 a 对应位置元素与平均值的差值,并输出结果。
阅读全文