用c 语言实现数组的并集,C中的函数实现了另一个int的两个数组的数学并集[关闭]...

语言是ANSI C.我有2个 int 数组: A 和 B . A 有一个名为 m 的索引和 B 一个名为 n 的索引 . 赋值说 m 必须与 n 不同,因此数组必须具有不同的大小 . 我已经编码了这个 . A 按升序排序,而 B 按降序排列 . 我必须编写一个函数,在另一个名为 C 的数组中完成两个数组的数学联合 . 如果一个元素在两个数组中,则必须在union的数组中只放置一个元素(数组 C ) .

我的代码不能很好地工作 . 最后一个元素没有排序,我收到的输出有一个非常大的最后一个数字,我不知道它来自哪里 .

int index_c=index_m+index_n; //the index of array c

// is obtained by the sum of two indexes of the array A and B

int c[index_c];

int k=0;

for (i=0; i < index_m; i++)

{

for (j=0; j < index_n; j++)

{

if (a[i]==b[j])

{

c[k]=a[i]; //put only one time if is repeated more time in the two arrays

}

else

{

c[k]=a[i]; //put the a[i] element in the array c

c[k+1]=b[j]; //the element of the other array next to

}

}

k++;

}

printf("Elements in array C are: \n");

for (i=0; i

printf("element %d\n", c[i]);

如果数组C没有排序也没关系,我会在联合之后排序 . 有什么建议?

我在添加1个输入时尝试放置k的建议,当我向数组C添加两个输入时尝试k 2.现在它工作得很好,但它没有完全工作 . 我的意思是在输出中我没有大数值,但其中一个输出值(第3个)与第一个相同 . 示例:3 9 3 2 5第二个3错了,它缺少第二个3覆盖的数字 . 其他示例2 4 2 1 9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值