在C语言中,可以使用嵌套循环来检查一个矩阵中的数字是否重复。以下是一个示例代码:
#include <stdio.h>
#define ROWS 3
#define COLS 3
int isDuplicate(int matrix[ROWS][COLS]) {
int i, j, k, l;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
for (k = 0; k < ROWS; k++) {
for (l = 0; l < COLS; l++) {
if ((i != k || j != l) && matrix[i][j] == matrix[k][l]) {
return 1; // 重复数字存在
}
}
}
}
}
return 0; // 无重复数字
}
int main() {
int matrix[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
if (isDuplicate(matrix)) {
printf("矩阵中存在重复数字\n");
} else {
printf("矩阵中不存在重复数字\n");
}
return 0;
}
上述代码中,我们定义了一个isDuplicate
函数,该函数接受一个二维数组作为参数,表示矩阵。通过四重嵌套循环,遍历矩阵中的每个元素,并与其他元素进行比较。如果找到了相同的数字且位置不同,则返回1表示存在重复数字;否则返回0表示不存在重复数字。
在main
函数中,我们定义了一个3x3的矩阵,并调用isDuplicate
函数来检查是否存在重复数字。根据返回值,输出相应的结果。
这种方法的时间复杂度为O(n^2),其中n为矩阵的大小。
领取专属 10元无门槛券
手把手带您无忧上云