请用c语言输入2行:第一行是一个整数n(0<n<=100),表示集合A有n个元素,第二行有N个不同的整数(按从小到大排序)。输出若干行,每行表示R的哈斯图上的一条边,所有的边按字典顺序给出,处理到输入结束,并且第二行的元素不能整除
时间: 2024-02-20 10:59:17 浏览: 81
我们第一行包括两个整数n,k(1<=n<=100,k<=6e5),表示有n个数字,目标和为k 第二行输入n个整数(c1 c2
好的,下面是相应的代码:
```c
#include <stdio.h>
int main() {
int n, i, j, k;
int a[101];
scanf("%d", &n);
for(i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for(i = 0; i < n; i++) {
for(j = i + 1; j < n; j++) {
if(a[j] % a[i] == 0 && a[j] / a[i] != n) continue;
printf("%d %d\n", a[i], a[j]);
}
}
return 0;
}
```
这段代码首先读入整数 n,然后读入一个长度为 n 的整数数组 a,表示集合 A 中的元素。接着,代码使用两层循环遍历数组 a 中的每个元素,对于任意两个不同的元素 a[i] 和 a[j],如果 a[j] 能够整除 a[i] 且不能整除 n,则跳过这次循环,否则输出一条边 (a[i], a[j]),表示 R 的哈斯图中存在一条从 a[i] 指向 a[j] 的边。最后,代码输出所有的边,按照字典序排序。
阅读全文