7-5 找出不是两个数组共有的元素 (10 分)\n给定两个整型数组,本题要求找出不是两者共有的元素。\n\n输入格式:\n输入分别在两行中给出两个整型数组,每行先给出正整数n(≤20),随后是n个整数,其间
时间: 2023-05-31 17:17:59 浏览: 168
### 回答1:
这道题要求找出不是两个数组共有的元素。给定两个整型数组,每行先给出一个整型n(≤20),随后是n个整数,表示第一个数组中的n个元素;再给出一个整型m(≤20),随后是m个整数,表示第二个数组中的m个元素。
### 回答2:
题目描述:
本题要求我们找出两个数组中不共有的元素。给定两个整型数组,我们需要分别比较两个数组中的元素,找出不同的元素。
解题思路:
首先,我们需要输入两个数组及其元素,分别放到两个数组中。然后,我们需要遍历两个数组,比较两个数组中的元素是否相等,如果不相等则说明该元素不是两个数组共有的元素,将其输出即可。
以下是代码实现:
#include<stdio.h>
int main()
{
int n,m; //定义两个数组的元素个数
scanf("%d",&n); //输入第一个数组的元素个数
int a[n]; //定义第一个数组及其元素
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]); //输入第一个数组的元素
}
scanf("%d",&m); //输入第二个数组的元素个数
int b[m]; //定义第二个数组及其元素
for(int i=0;i<m;i++)
{
scanf("%d",&b[i]); //输入第二个数组的元素
}
int flag=0; //定义标志位
for(int i=0;i<n;i++) //遍历第一个数组
{
for(int j=0;j<m;j++) //遍历第二个数组
{
if(a[i]==b[j]) //如果两个元素相等
{
flag=1; //将标志位置1
break; //跳出当前循环
}
}
if(!flag) //如果标志位为0
{
printf("%d ",a[i]); //输出该元素
}
flag=0; //将标志位置0
}
for(int i=0;i<m;i++) //遍历第二个数组
{
for(int j=0;j<n;j++) //遍历第一个数组
{
if(b[i]==a[j]) //如果两个元素相等
{
flag=1; //将标志位置1
break; //跳出当前循环
}
}
if(!flag) //如果标志位为0
{
printf("%d ",b[i]); //输出该元素
}
flag=0; //将标志位置0
}
return 0;
}
总结:
本题需要遍历两个数组,比较两个数组中的元素是否相等,输出不同的元素。解题过程中需要定义标志位,用于判断元素是否相等。
### 回答3:
题目要求我们找出两个数组中不共有的元素,我们可以把这个问题转化为找到数组A中的元素,判断是否也在数组B中出现过,如果没有出现,我们就找到了一个不共有的元素。
具体的操作步骤如下:
1. 首先我们需要读入两个数组A和B。
2. 读入之后,我们可以循环遍历数组A中的每个元素。
3. 对于每个元素,我们需要判断是否也在数组B中出现过。如果没有出现过,说明它是一个不共有的元素,我们可以把它加入到一个新的数组C中。
4. 最后输出数组C中的元素就是不共有的元素。
下面是具体的代码实现:
```python
# 读入两个数组
n1 = int(input())
a = list(map(int, input().split()))
n2 = int(input())
b = list(map(int, input().split()))
# 找出不共有的元素
c = []
for i in range(n1):
if a[i] not in b:
c.append(a[i])
# 输出结果
if len(c) == 0:
print("NOT FOUND")
else:
for i in range(len(c)):
print(c[i], end=' ')
```
以上代码会先读入两个数组A和B,然后使用一个循环遍历数组A中的每个元素。每次遍历时,我们使用`not in`操作符判断当前元素是否也在数组B中出现过,如果没有出现过,我们就把它加入到数组C中。最后再根据数组C的长度输出结果即可。
需要注意的是,如果两个数组中没有不共有的元素,我们需要输出`NOT FOUND`。
阅读全文