用随机数对象产生0---100范围内的不同整数,用以初始化一个M*N的二维数组(M*N<100),然后编程找出二维数组中的最大数和最小数,并将其交换位置。要求输出原始二维数组及交换后的二维数组。
时间: 2023-08-31 14:25:44 浏览: 216
### 回答1:
下面是一个 Python 代码实现:
```
import random
M = int(input("请输入 M 的值: "))
N = int(input("请输入 N 的值: "))
# 初始化二维数组
arr = [[random.randint(0, 100) for j in range(N)] for i in range(M)]
# 输出原始二维数组
print("原始二维数组:")
for row in arr:
print(row)
# 找出二维数组中的最大数和最小数
min_val = arr[0][0]
max_val = arr[0][0]
min_row, min_col = 0, 0
max_row, max_col = 0, 0
for i in range(M):
for j in range(N):
if arr[i][j] < min_val:
min_val = arr[i][j]
min_row, min_col = i, j
if arr[i][j] > max_val:
max_val = arr[i][j]
max_row, max_col = i, j
# 交换位置
arr[min_row][min_col], arr[max_row][max_col] = arr[max_row][max_col], arr[min_row][min_col]
# 输出交换后的二维数组
print("交换后的二维数组:")
for row in arr:
print(row)
```
该代码首先用随机数初始化一个 M×N 的二维数组,然后找出二维数组中的最大数和最小数,最后交换它们的位置并输出原始和交换后的二维数组。
### 回答2:
首先,我们可以通过使用随机数对象来产生0到100之间的不同整数,并将其用于初始化一个M*N的二维数组。这可以通过嵌套循环来完成,外层循环控制行数,内层循环控制列数。在每个位置上,我们生成一个随机数并将其存储在数组中。
接下来,我们需要找出二维数组中的最大数和最小数,并将它们的位置交换。我们可以使用两个变量来存储最大数和最小数的值,然后在遍历数组时,将遇到的数与这两个变量进行比较。如果遇到比最大数更大的数,则更新最大数的值;如果遇到比最小数更小的数,则更新最小数的值。
完成遍历后,我们可以使用另一个变量来交换最大数和最小数的位置。这可以通过嵌套循环来实现,外层循环控制行数,内层循环控制列数。在每个位置上,当我们找到最大数时,我们将其值替换为最小数的值,并将最小数的值替换为最大数的值。
最后,我们输出原始二维数组及交换后的二维数组。这可以通过再次使用嵌套循环来完成,在每个位置上,我们打印数组中的值,并在每一行结束时换行。
下面是一个可能的实现:
```python
import random
M = 3
N = 4
# 初始化二维数组
arr = [[0] * N for _ in range(M)]
# 生成0-100范围内的不同整数并初始化二维数组
unique_nums = random.sample(range(101), M * N)
index = 0
for i in range(M):
for j in range(N):
arr[i][j] = unique_nums[index]
index += 1
# 寻找最大数和最小数,并交换位置
min_num = arr[0][0]
max_num = arr[0][0]
min_row = 0
min_col = 0
max_row = 0
max_col = 0
for i in range(M):
for j in range(N):
if arr[i][j] < min_num:
min_num = arr[i][j]
min_row = i
min_col = j
if arr[i][j] > max_num:
max_num = arr[i][j]
max_row = i
max_col = j
# 交换最小数和最大数的位置
arr[min_row][min_col], arr[max_row][max_col] = arr[max_row][max_col], arr[min_row][min_col]
# 输出原始二维数组
print("原始二维数组:")
for i in range(M):
for j in range(N):
print(arr[i][j], end=' ')
print()
# 输出交换后的二维数组
print("交换后的二维数组:")
for i in range(M):
for j in range(N):
print(arr[i][j], end=' ')
print()
```
注意:由于随机数的生成很难保证绝对的不同,因此可能会出现重复的数字。在代码中,我们使用了`random.sample()`函数来生成不同的数字,但请注意并不是完全保证不重复。
### 回答3:
首先,我们可以使用随机数对象生成0到100之间的不同整数来初始化一个M*N的二维数组。假设M=3,N=4,我们可以得到以下原始二维数组:
原始数组:
[[5, 34, 21, 70],
[89, 41, 63, 17],
[72, 95, 10, 49]]
然后,我们需要找到二维数组中的最大数和最小数,并将它们的位置进行交换。
最大数为95,位于数组下标[2, 1]处;
最小数为5,位于数组下标[0, 0]处。
交换它们的位置后得到新的二维数组:
交换后数组:
[[95, 34, 21, 70],
[89, 41, 63, 17],
[72, 5, 10, 49]]
最后,我们将原始二维数组和交换后的二维数组输出。
原始二维数组:
[[5, 34, 21, 70],
[89, 41, 63, 17],
[72, 95, 10, 49]]
交换后的二维数组:
[[95, 34, 21, 70],
[89, 41, 63, 17],
[72, 5, 10, 49]]
阅读全文