CyL1xX 2022-12-27 18:02 采纳率: 100%
浏览 104
已结题

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

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


#include<iostream>
#include<stdio.h>
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<len1;i++)
    {
        cin>>arr1[i];
    }
    cin>>len2;
    for(int i=0;i<len2;i++)
    {
        cin>>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<<arr3[i]<<" ";
    }
}
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条回答 默认 最新

  • |__WhoAmI__| 2022-12-27 18:26
    关注

    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;
    }
    

    望采纳。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 创建了问题 12月27日

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改