自己看着找不到问题 不知道哪里出错了
#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;
}
望采纳。