比较两组整数是否有相同的元素,并打印输出这些相同的元素,不考虑元素的顺序,并忽略元素重复的情况,每组元素人数不超过100

自己看着找不到问题 不知道哪里出错了


#include
#include
using namespace std;
int enter();
void output(int arr3[],int len3);
int compare(int arr1[],int arr2[],int len1,int len2);

int enter()
{
    int arr1[100];
    int arr2[100];
    int len1,len2;
    cin>>len1;
    for(int i=0;i>arr1[i];
    }
    cin>>len2;
    for(int i=0;i>arr2[i];
    }
    return arr1,len1,arr2,len2;
}

int compare(int arr1[],int arr2[],int len1,int len2)
{
    int arr3[100];
    for(int i=0;i<100;i++)
    {
        for(int j=0;j<100;j++)
        {
            if(arr1[i]==arr2[j])
            {
                for(int k=0;k<100;k++)
                {
                    arr3[k]=arr1[i];
                }
            }
        }
    }
    int len3=sizeof(arr3)/sizeof(arr3[0]);
    return arr3,len3;
}

void output(int arr3[],int len3)
{
    for(int i=0;i<100;i++)
    {
        cout<int main()
{
    int arr1[100];
    int arr2[100];
    int arr3[100];
    int len1,len2,len3;
    enter();
    compare(arr1,arr2,len1,len2);
    output(arr3,len3);
    return 0;
}

1、enter()函数不应接受任何参数,并且应返回多个值。一种方法是使用结构来存储数组及其长度,并返回结构的实例。
2、在enter()函数中,return语句不正确。它应该返回结构的实例,而不是结构的单个组件。
3、在compare()函数中,return语句不正确。它应该返回结构的实例,而不是结构的单个组件。
4、output()函数应将结构的实例作为参数,而不是单独的数组和长度。
5、在main()函数中,变量arr1、arr2、arr3、len1、len2和len3未初始化。它们应该设置为enter()和compare()函数返回的值。
6、compare()函数中的for循环应具有小于数组长度的循环变量,而不是100。
7、output()函数中的for循环应该有一个小于数组长度的循环变量,而不是100。

#include<iostream>
#include<stdio.h>
using namespace std;

struct Arrays {
    int arr1[100];
    int arr2[100];
    int arr3[100];
    int len1;
    int len2;
    int len3;
};

Arrays enter() {
    Arrays arrays;
    cin >> arrays.len1;
    for (int i = 0; i < arrays.len1; i++) {
        cin >> arrays.arr1[i];
    }
    cin >> arrays.len2;
    for (int i = 0; i < arrays.len2; i++) {
        cin >> arrays.arr2[i];
    }
    return arrays;
}

Arrays compare(Arrays arrays) {
    for (int i = 0; i < arrays.len1; i++) {
        for (int j = 0; j < arrays.len2; j++) {
            if (arrays.arr1[i] == arrays.arr2[j]) {
                arrays.arr3[arrays.len3] = arrays.arr1[i];
                arrays.len3++;
            }
        }
    }
    return arrays;
}

void output(Arrays arrays) {
    for (int i = 0; i < arrays.len3; i++) {
        cout << arrays.arr3[i] << " ";
    }
}

int main() {
    Arrays arrays = enter();
    arrays = compare(arrays);
    output(arrays);
    return 0;
}

望采纳。