gpt4 book ai didi

C程序求并集和交集

转载 作者:太空宇宙 更新时间:2023-11-04 04:48:05 25 4
gpt4 key购买 nike

以下是我的代码:

#include <stdio.h>

void arrays()
{
int i,n,j;
printf("Enter the size of the arrays:\n");
scanf("%d",&n);

int a1[n];
int a2[n];
int intersection[2*n], unions[n];
printf("Enter elements of the first array:\n");

for (i = 0; i < n; i++)
{
scanf("%d",&a1[i]);
}
printf("Enter elements of the second array:\n");
for (j = 0; j < n; j++)
{
scanf("%d",&a2[j]);
}
int indexs = -1, indexu = -1;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
unions[++indexu] = a1[j];
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
if(a1[i] == a2[j])
{
intersection[++indexs] = a2[j];
}
else
{
unions[++indexu] = a2[j];
}
}
}

printf("Intersection:\n");
printf("Union:\n");
for(i = 0; i < indexs; i++)
printf("%d",intersection[i]);
for (j = 0; j < indexu; j++)
printf("%d" ,unions[j]);
}

现在,我很难找到并集和交集。我正在尝试修复我的循环,但我找不到问题出在哪里我这样做的方法是首先将第一个数组与第二个数组进行比较。因为 union 意味着两个数组中的所有元素。然后第二个是找到重复的数字将首先去交叉点。或者如果 union 中没有存储元素。它也会去 union 阵列。谁能帮忙?谢谢

最佳答案

其中一个问题出在您的输出部分。

printf("Intersection:\n");
printf("Union:\n");
for(i = 0; i < indexs; i++)
printf("%d",intersection[i]);
for (j = 0; j < indexu; j++)
printf("%d" ,unions[j]);

此代码片段在打印数组内容之前打印出 "Intersection:\n""Union:\n"。这就是为什么您认为它不会显示交集

正确的代码应该是:

printf("Intersection:\n");
for(i = 0; i <= indexs; i++)
printf("%d",intersection[i]);
printf("\n");
printf("Union:\n");
for (j = 0; j <= indexu; j++)
printf("%d" ,unions[j]);
printf("\n");

关于C程序求并集和交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18993708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com