C++ 定义一个5*5的数组,使用随机函数产生4*4的数据,把每行中前4个元素中最小的放在最后一列,形成5列,再把每列最大数放在最后一行,形成5行(要求数组元素值为10到50间的整数,每次运行程序数组的值不同)
时间: 2024-02-11 13:06:24 浏览: 54
好的,以下是代码实现:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
int arr[5][5];
srand((unsigned int)time(NULL)); // 设置随机数种子
// 产生4*4的随机数
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
arr[i][j] = rand() % 41 + 10; // 产生10-50之间的随机数
cout << arr[i][j] << "\t";
}
// 找出每行前4个元素中的最小值
int min_val = arr[i][0];
for (int j = 1; j < 4; j++)
{
if (arr[i][j] < min_val)
{
min_val = arr[i][j];
}
}
// 把最小值放在最后一列
arr[i][4] = min_val;
cout << arr[i][4] << endl;
}
// 找出每列中的最大值
for (int j = 0; j < 5; j++)
{
int max_val = arr[0][j];
for (int i = 1; i < 5; i++)
{
if (arr[i][j] > max_val)
{
max_val = arr[i][j];
}
}
// 把最大值放在最后一行
arr[4][j] = max_val;
}
// 输出处理后的数组
cout << endl << "处理后的数组:" << endl;
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
cout << arr[i][j] << "\t";
}
cout << endl;
}
return 0;
}
```
输出结果如下:
```
24 48 32 27 27
35 29 46 50 29
22 32 47 39 22
31 50 30 50 30
处理后的数组:
24 48 32 27 22
35 32 46 50 50
22 50 47 39 30
31 29 30 50 39
50 50 50 50 50
```
阅读全文