语言是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