编写一个测试程序,提示用户输入一个n*n的矩阵(n>=6),并输入矩阵中的每个值(自定义)。如果这个矩阵中有四个连续的数字相同,返回true,否则返回false。 用二维数组的知识去尝试编写。
时间: 2024-09-14 14:06:36 浏览: 41
好的,这里提供一个简单的测试程序的思路,然后给出一个基于Java语言的示例代码。
思路描述:
1. 首先,程序需要提示用户输入矩阵的大小n,且n必须大于或等于6,否则程序将不接受这个输入。
2. 接着程序需要提示用户输入矩阵中的每个值,可以采用二维数组的方式存储这些值。
3. 然后,程序需要遍历这个二维数组,检查是否存在四个连续的相同数字。这个检查可以针对矩阵的行、列以及两个主对角线进行。
4. 如果找到满足条件的四个连续相同数字,程序返回true,否则返回false。
示例代码(Java):
```java
import java.util.Scanner;
public class MatrixCheck {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入矩阵的大小n(n>=6):");
int n = scanner.nextInt();
while (n < 6) {
System.out.println("输入的n不满足条件,请重新输入n(n>=6):");
n = scanner.nextInt();
}
int[][] matrix = new int[n][n];
// 输入矩阵的值
System.out.println("请输入矩阵中的每个值:");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = scanner.nextInt();
}
}
// 检查矩阵是否包含四个连续相同的数字
boolean hasFourConsecutive = checkMatrix(matrix);
System.out.println("矩阵中" + (hasFourConsecutive ? "存在" : "不存在") + "四个连续的相同数字。");
scanner.close();
}
// 检查矩阵的函数
private static boolean checkMatrix(int[][] matrix) {
int n = matrix.length;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
// 横向检查
if (j <= n - 4 && matrix[i][j] == matrix[i][j + 1] && matrix[i][j] == matrix[i][j + 2] && matrix[i][j] == matrix[i][j + 3]) {
return true;
}
// 纵向检查
if (i <= n - 4 && matrix[i][j] == matrix[i + 1][j] && matrix[i][j] == matrix[i + 2][j] && matrix[i][j] == matrix[i + 3][j]) {
return true;
}
// 主对角线检查
if (i <= n - 4 && j <= n - 4 && matrix[i][j] == matrix[i + 1][j + 1] && matrix[i][j] == matrix[i + 2][j + 2] && matrix[i][j] == matrix[i + 3][j + 3]) {
return true;
}
// 副对角线检查
if (i >= 3 && j <= n - 4 && matrix[i][j] == matrix[i - 1][j + 1] && matrix[i][j] == matrix[i - 2][j + 2] && matrix[i][j] == matrix[i - 3][j + 3]) {
return true;
}
}
}
return false;
}
}
```
阅读全文