Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 检查两个数组中的公共值,并将不同的值放入第三个数组_C_Arrays - Fatal编程技术网

C 检查两个数组中的公共值,并将不同的值放入第三个数组

C 检查两个数组中的公共值,并将不同的值放入第三个数组,c,arrays,C,Arrays,我有这个密码。。。对于从用户处获取7个数字并将其放入1号数组的函数。。。。然后创建一个随机数并将其放入数组编号2中…检查是否存在公共值…(不仅在同一位置,例如:不仅在ar1[1]==ar2[1]…而且在存在公共值的情况下检查所有位置)…并将不同的值放入第三个数组…创建第三个数组并将不常用的值放入其中。。。这是我的代码: //includes # include <stdio.h> # include <conio.h> # include <stdlib.h

我有这个密码。。。对于从用户处获取7个数字并将其放入1号数组的函数。。。。然后创建一个随机数并将其放入数组编号2中…检查是否存在公共值…(不仅在同一位置,例如:不仅在ar1[1]==ar2[1]…而且在存在公共值的情况下检查所有位置)…并将不同的值放入第三个数组…创建第三个数组并将不常用的值放入其中。。。这是我的代码:

 //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放入第三个数组并打印第三个数组