数据结构c语言版用顺序表求两个数组的交集,数组里的数用键盘敲人,并且输出结果按大小排序
时间: 2023-05-30 17:03:29 浏览: 137
以下是使用顺序表求两个数组的交集,且输出结果按大小排序的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
void sort(SqList *L) {
int i, j, temp;
for (i = 0; i < L->length - 1; i++) {
for (j = i + 1; j < L->length; j++) {
if (L->data[i] > L->data[j]) {
temp = L->data[i];
L->data[i] = L->data[j];
L->data[j] = temp;
}
}
}
}
void intersection(SqList A, SqList B, SqList *C) {
int i, j, k;
k = 0;
for (i = 0; i < A.length; i++) {
for (j = 0; j < B.length; j++) {
if (A.data[i] == B.data[j]) {
C->data[k++] = A.data[i];
break;
}
}
}
C->length = k;
}
int main() {
SqList A, B, C;
int i, x;
printf("请输入数组A的元素个数:");
scanf("%d", &A.length);
printf("请输入数组A的元素:");
for (i = 0; i < A.length; i++) {
scanf("%d", &A.data[i]);
}
printf("请输入数组B的元素个数:");
scanf("%d", &B.length);
printf("请输入数组B的元素:");
for (i = 0; i < B.length; i++) {
scanf("%d", &B.data[i]);
}
intersection(A, B, &C);
sort(&C);
printf("数组A和数组B的交集为:\n");
for (i = 0; i < C.length; i++) {
printf("%d ", C.data[i]);
}
printf("\n");
return 0;
}
```
运行结果示例:
```
请输入数组A的元素个数:5
请输入数组A的元素:3 2 7 1 9
请输入数组B的元素个数:6
请输入数组B的元素:2 5 9 8 7 1
数组A和数组B的交集为:
1 2 7 9
```
阅读全文