做法:将两个数组合并为一个数组,每当要输出不为重复的值时与之前的数组元素比较,查重,有相同便跳过,没有就输出。
下面展示一些 内联代码片
。
代码:
#include <stdio.h>
int main()
{
int array1 []={1,2,-3,4,5,-2,3,14,23,41};
int array2 []={2,3,4,7,878,7,6,556,7,56};
int length;
int length1;
int array3 [20];//这个是存储所有值的数组.
length=sizeof(array1)/sizeof(int);
length1=sizeof(array2)/sizeof(int);
for (int i = 0; i < length; i++)
{
// 此处两个数组一样长度,如果长度不一可将上面的lengtn改为length+length1,下方为array3元素赋值同样原理
array3[i]=array1[i];
array3[i+length1]=array2[i];
}
// cout << array3[0];
printf("%d",array3[0]);
int n;//此处在下面解释
for (int i = 1; i <length+length1; i++)
{
for (int j = 0; j < i; j++)
{
if (array3[j] == array3[i])
{
//此处成立时最外层循环应continue,此处只想到了用array3[j]的值来判断,所以出现了上面的int n;
n=j;
break;//判断出此处值与前面的值相同,跳出当前循环。
}
}
if (array3[n] == array3[i])
{
continue;
}else
{
// cout << " "<<array3[i];
printf(" %d",array3[i]);
}
}
return 0;
}
PS F:\Vscodedaima\PAT> cd "f:\Vscodedaima\PAT\" ; if ($?) { gcc Demo7_1_4.c -o Demo7_1_4 } ; if ($?) { .\Demo7_1_4 }
1 2 -3 4 5 -2 3 14 23 41 7 878 6 556 56
PS F:\Vscodedaima\PAT>
最近在学C++过来看了一下题目,看了看别的帖子想到了比之前好的方法就写了下来。如果有错误,或者是写的不好的地方望指出。