判断关系的自反性,第一行输入矩阵维数n,接下来的n行输入关系矩阵,dev-c++c语言
时间: 2023-12-03 12:45:58 浏览: 82
以下是判断关系的自反性的C语言代码实现,使用了二维数组表示关系矩阵:
```c
#include <stdio.h>
int main() {
int n, i, j, flag = 1;
printf("请输入矩阵维数n:");
scanf("%d", &n);
int matrix[n][n];
printf("请输入关系矩阵:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
for (i = 0; i < n; i++) {
if (matrix[i][i] == 0) {
flag = 0;
break;
}
}
if (flag) {
printf("该关系具有自反性。\n");
} else {
printf("该关系不具有自反性。\n");
}
return 0;
}
```
首先输入矩阵维数n,然后输入关系矩阵,最后遍历对角线元素,若存在任意一个为0,则说明该关系不具有自反性;反之,则具有自反性。
相关问题
判断关系的自反性,第一行输入矩阵维数n,接下来的n行输入关系矩阵,输出为一行,若该矩阵具有自反性,输出“The matrix is reflexive.”,若该矩阵具有反自反性,输出” The matrix is irreflexive.”若该矩阵没有自反性也没有反自反性,输出“The matrix is not irreflexive or reflexive.”dev-c++c语言
以下是该程序的代码实现:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n); // 输入矩阵维数
int a[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &a[i][j]); // 输入关系矩阵
}
}
int reflexive = 1, irreflexive = 1;
for (int i = 0; i < n; i++) {
if (a[i][i] == 0) {
reflexive = 0; // 不满足自反性
} else if (a[i][i] == 1) {
irreflexive = 0; // 不满足反自反性
}
}
if (reflexive && irreflexive) {
printf("The matrix is not irreflexive or reflexive.");
} else if (reflexive) {
printf("The matrix is reflexive.");
} else if (irreflexive) {
printf("The matrix is irreflexive.");
}
return 0;
}
```
程序中,首先输入矩阵的维数和关系矩阵。然后遍历矩阵的对角线元素,判断是否满足自反性和反自反性的条件。最后根据判断结果输出不同的语句。
阅读全文