2025-03-31 19:37:23 +08:00

75 lines
2.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
请编写C 代码,完成计算数组 A 与数组 B 的对称差集(即只属于 A 或者只属
于 B 的元素)。提示:可以先将数组 A 和 B 变为递增排序,然后可以使用双指
针法来高效地找到它们的对称差集。
示例1
【请输入数组 A 的大小: 】5
【请输入数组 A 的 5 个元素: 】6 5 4 3 2
【请输入数组 B 的大小: 】4
【请输入数组 B 的 4 个元素: 】7 6 3 8
【数组 A 与数组 B 的对称差集为: 】2 4 5 7 8
------------------------------------------------------------------------
注意部分源程序给出如下。请勿改动主函数main 或其它函数中给出的内容,仅
Program-End 之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End 之外的内容否则不得分。
----------------------------------------------------------------------*/
#include <stdio.h>
void bubbleSort(int arr[], int size)
{
int i, j;
for (i = 0; i < size - 1; i++)
{
for (j = 0; j < size - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
// 交换 arr[j] 和 arr[j + 1]
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int computeSymmetricDifference(int A[], int sizeA, int B[], int sizeB, int C[])
{
int i = 0, j = 0, k = 0;
/**********Program**********/
/********** End **********/
}
int main()
{
int sizeA, sizeB;
int i;
printf("【请输入数组 A 的大小: 】");
scanf("%d", &sizeA);
int A[100];
printf("【请输入数组 A 的 %d 个元素: 】", sizeA);
for (i = 0; i < sizeA; i++)
{
scanf("%d", &A[i]);
}
printf("【请输入数组 B 的大小: 】");
scanf("%d", &sizeB);
int B[100];
printf("【请输入数组 B 的 %d 个元素: 】", sizeB);
for (i = 0; i < sizeB; i++)
{
scanf("%d", &B[i]);
}
int C[200]; // 假设结果数组最大长度为 200为 A 和 B 长度之和
int diffSize = computeSymmetricDifference(A, sizeA, B, sizeB, C);
printf("【数组 A 与数组 B 的对称差集为: 】");
for (i = 0; i < diffSize; i++)
{
printf("%d ", C[i]);
}
printf("\n");
return 0;
}