使用c语言输入一个3×3的数字矩阵,并判断其中的数字是否在1到9之间,或者有重复,如果超出1到9的范围,那么输出NO,如果在范围内,并且没有重复的数字,那么输出YES
时间: 2024-09-19 10:16:02 浏览: 33
在C语言中,你可以按照以下步骤来实现这个功能:
首先,你需要创建一个函数来接收用户输入并检查矩阵中的每个元素。可以使用嵌套循环遍历整个3x3矩阵。对于每一步,读取用户的输入并验证它是否在1到9之间。同时,需要维护一个临时数组来记录已访问过的数字,防止重复。
下面是一个简单的示例代码结构:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
// 函数声明
int check_matrix(int matrix[ROWS][COLS]);
int main() {
int matrix[ROWS][COLS];
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("请输入矩阵(%d,%d)位置的数字: ", i + 1, j + 1);
scanf("%d", &matrix[i][j]);
}
}
// 检查矩阵内容
if (check_matrix(matrix)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
// 检查矩阵元素的方法
int check_matrix(int matrix[ROWS][COLS]) {
int visited[10] = {0}; // 初始化一个计数器数组
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (matrix[i][j] < 1 || matrix[i][j] > 9) {
return 0; // 超出范围,返回NO
}
if (visited[matrix[i][j]] == 1) {
return 0; // 发现重复数字,返回NO
}
visited[matrix[i][j]] = 1; // 标记该位置的数字已被访问
}
}
return 1; // 所有元素都在范围内且无重复,返回YES
}
```
阅读全文