C 检查两个数组中的公共值,并将不同的值放入第三个数组
我有这个密码。。。对于从用户处获取7个数字并将其放入1号数组的函数。。。。然后创建一个随机数并将其放入数组编号2中…检查是否存在公共值…(不仅在同一位置,例如:不仅在ar1[1]==ar2[1]…而且在存在公共值的情况下检查所有位置)…并将不同的值放入第三个数组…创建第三个数组并将不常用的值放入其中。。。这是我的代码:C 检查两个数组中的公共值,并将不同的值放入第三个数组,c,arrays,C,Arrays,我有这个密码。。。对于从用户处获取7个数字并将其放入1号数组的函数。。。。然后创建一个随机数并将其放入数组编号2中…检查是否存在公共值…(不仅在同一位置,例如:不仅在ar1[1]==ar2[1]…而且在存在公共值的情况下检查所有位置)…并将不同的值放入第三个数组…创建第三个数组并将不常用的值放入其中。。。这是我的代码: //includes # include <stdio.h> # include <conio.h> # include <stdlib.h
//includes
# include <stdio.h>
# include <conio.h>
# include <stdlib.h>
# include <time.h>
//define
#define N 7
//prototype
void randomArray(int maxVal,int ar2[]);
int main()
{
//variables/arrays
int ar1[N],ar2[N],ar3[N],i,z,t,temp,maxVal,counter;
printf("Please Enter %d numbers: ",N);
for(i=0;i<7;i++)
{
scanf("%d",&ar1[i]);
}
while(1)
{
printf("Please enter a max value: ");
scanf("%d",&maxVal);
if(maxVal>0)
break;
}
randomArray(maxVal,ar2);
getch();
return 0;
}
//randomArray
void randomArray(int maxVal,int ar2[])
{
int i;
for(i=0;i<N;i++)
{
/* get random value between minVal and maxVal */
ar2[i] = (rand() % (maxVal+1 - 1)) + 1;
}
}
//包括
#包括
#包括
#包括
#包括
//定义
#定义n7
//原型
void随机数组(int-maxVal,int-ar2[]);
int main()
{
//变量/数组
int ar1[N]、ar2[N]、ar3[N]、i、z、t、temp、maxVal、计数器;
printf(“请输入%d个数字:”,N);
对于(i=0;i0)
打破
}
随机数组(maxVal,ar2);
getch();
返回0;
}
//随机阵列
无效随机数组(int-maxVal,int-ar2[]
{
int i;
对于(i=0;i这是一种简单的蛮力方法。它首先将数组1中的每个元素与数组2中的每个元素进行比较,如果不在数组2中,则将其存储。然后对数组2执行相同的操作。然后打印数组3
注意:如果没有匹配项,您需要将数组3的大小更改为N*2。此外,请先将数组3中的所有元素设置为0,以标记为非结果。或者跟踪数组3的长度
int ar3[N*2] = {0};
int index = 0;
//Check 1st array
printf("Array 1:\t");
for (int i = 0; i < N; i++) {
bool in_array = false;
for (int k = 0; k < N; k++) {
if (ar1[i] == ar2[k]) {
in_array = true;
break;
}
}
if (!in_array) {
ar3[index++] = ar1[i];
}
printf(" %d", ar1[i]);
}
//Check 2nd array
printf("\r\nArray 2:\t");
for (int i = 0; i < N; i++) {
bool in_array = false;
for (int k = 0; k < N; k++) {
if (ar2[i] == ar1[k]) {
in_array = true;
break;
}
}
if (!in_array) {
ar3[index++] = ar2[i];
}
printf(" %d", ar2[i]);
}
// Print result
printf("\r\nUnique:\t");
for (int i = 0, j = 0; i < N*2; i++) {
if (0 == ar3[i]) {
break;
}
printf(" %d", ar3[i]);
}
intar3[N*2]={0};
int指数=0;
//检查第一阵列
printf(“数组1:\t”);
对于(int i=0;i
如果这对您有效,请接受正确答案。您的问题是什么?为什么标题中有C?我上面的代码返回2个数组,在第一个数组中用户输入7个数字…然后是一个随机数组…并将7个随机值发送到数组2…现在我需要检查上面两个数组中是否有公共值…一个d创建第三个数组并将非公共值发送到第三个数组…并打印第三个数组值…不起作用…我需要arr1:1,2,3,4,5,6,7和arr2:4,5,6,7,8,9,1…将非公共值:3,8,9放入第三个数组并打印第三个数组