用C++编写下面的题目: 定义一个5×5的数组,使用随机函数产生4×4的数据,把每行中前4个元素中最小的放在最后一列,形成5列,再把每列最大数放在最后一行,形成5行。 (要求数组元素的值为10到50之间的整数,每次运行程序
时间: 2023-12-03 16:42:07 浏览: 62
以下是C++代码实现:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
int arr[5][5];
srand(time(0)); // 初始化随机数种子
// 生成4x4的随机数据
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
arr[i][j] = rand() % 41 + 10; // 生成10到50之间的整数
}
}
// 将每行前4个元素中最小的放在最后一列
for (int i = 0; i < 4; i++) {
int min_val = arr[i][0];
int min_idx = 0;
for (int j = 1; j < 4; j++) {
if (arr[i][j] < min_val) {
min_val = arr[i][j];
min_idx = j;
}
}
arr[i][4] = min_val;
arr[i][min_idx] = arr[i][3];
arr[i][3] = min_val;
}
// 将每列最大数放在最后一行
for (int j = 0; j < 5; j++) {
int max_val = arr[0][j];
int max_idx = 0;
for (int i = 1; i < 4; i++) {
if (arr[i][j] > max_val) {
max_val = arr[i][j];
max_idx = i;
}
}
arr[4][j] = max_val;
arr[max_idx][j] = arr[3][j];
arr[3][j] = max_val;
}
// 输出结果
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
cout << arr[i][j] << "\t";
}
cout << endl;
}
return 0;
}
```
阅读全文