使用二维数组的思想,编写一个测试程序,提示用户输入一个n*n的矩阵(n>=6),并输入矩阵中的每个值,若这个矩阵中有四个连续的数字相同,返回true,否则返回false
时间: 2024-09-17 14:06:53 浏览: 46
当然可以。我们可以使用二维数组(如int[][] matrix)存储矩阵,并通过遍历矩阵来检查是否存在四个连续相同的数字。下面是一个简单的Python示例程序:
```python
def check_matrix(n):
matrix = [[0] * n for _ in range(n)] # 初始化一个n x n的全零矩阵
while True:
try:
row = int(input("请输入行号 (范围6到{}): ".format(n)))
col = int(input("请输入列号 (范围同样): "))
if row < 1 or row > n or col < 1 or col > n:
print("坐标无效,请重新输入。")
continue
value = int(input(f"请输入矩阵({row},{col})处的值: "))
# 将值存入矩阵
matrix[row - 1][col - 1] = value
# 检查当前位置及其周围是否有四个连续的相同值
if check_four_consecutive(matrix, row, col):
return True
except ValueError:
print("输入错误,请输入整数。")
def check_four_consecutive(matrix, row, col):
directions = [(0, 1), (1, 0), (0, -1), (-1, 0)] # 上下左右四个方向
for _ in range(4):
neighbor_val = matrix[row][col]
for dx, dy in directions:
next_row, next_col = row + dx, col + dy
if next_row < 0 or next_row >= len(matrix) or next_col < 0 or next_col >= len(matrix[0]):
break
if matrix[next_row][next_col] != neighbor_val:
break
else:
return True # 如果没有跳出循环,说明有四个连续的相同值
row += dx # 移动到下一个方向的邻居位置
return False # 四个方向都没有找到连续四个相同值
# 获取用户输入并检查矩阵
n = int(input("请输入矩阵的边长 (至少6): "))
if n < 6:
print("矩阵边长大于等于6才有效,请重新输入。")
else:
result = check_matrix(n)
if result:
print("找到了四个连续的相同数字,结果为True.")
else:
print("没有找到四个连续的相同数字,结果为False.")
阅读全文