现有一个值为1到n*n乱序的二维数组,输入二维数组的坐标,输出该坐标的值,如果这个值不为1,则重新输入;如果值为1,则继续输入坐标,接下来的值如果不是前一个数字的升序且连续的值,则重新开始,直到所有值都被找出。
时间: 2024-04-21 13:22:17 浏览: 58
明白了,你需要一个函数来实现这个算法。下面是一个用Python编写的示例代码:
```python
def find_ordered_values(n):
# 生成乱序的二维数组
array = []
for i in range(n):
row = []
for j in range(n):
row.append(i*n + j + 1)
array.append(row)
# 初始化当前值
current_value = 1
while current_value <= n*n:
# 输入坐标
row = int(input("请输入行号(0到{}):".format(n-1)))
col = int(input("请输入列号(0到{}):".format(n-1)))
# 获取坐标对应的值
value = array[row][col]
# 如果值不为1,则重新输入
if value != 1:
print("该坐标的值不为1,请重新输入")
continue
# 继续输入坐标,直到找到不符合条件的值为止
while current_value < n*n:
# 输入坐标
row = int(input("请输入行号(0到{}):".format(n-1)))
col = int(input("请输入列号(0到{}):".format(n-1)))
# 获取坐标对应的值
value = array[row][col]
# 如果值不是前一个数字的升序且连续的值,则重新开始
if value != current_value + 1:
print("输入的值不是前一个数字的升序且连续的值,请重新开始")
current_value = 1
break
# 更新当前值
current_value = value
# 输出找到的值
print("找到值:", current_value)
# 更新当前值
current_value += 1
print("所有值都已找出")
# 测试示例
find_ordered_values(3)
```
注意:在上述示例代码中,输入的行号和列号应该在合法范围内(0到n-1),且假设用户会输入合法的值。同时,为了方便演示,这里使用了`input()`函数来获取用户的输入。在实际应用中,你可以根据实际情况修改输入方式。
阅读全文