找出不是两个数组共有的元素。输入一个正整数n(1<n≤10),再输入n个整数,存入第1个数组中;输入一个正整数m(1<m≤10),再输入m个整数,存入第2个数组中;找出不是两个数组共有的元素。试编写相
时间: 2023-05-02 14:01:14 浏览: 189
题目描述:找出不是两个数组共有的元素。
输入一个正整数n(1<n≤10),再输入n个整数,存入第1个数组中;输入一个正整数m(1<m≤10),再输入m个整数,存入第2个数组中;找出不是两个数组共有的元素。请编写相应代码。
解题思路:使用set数据结构来存储每一个数组中的元素,然后计算symmetric_difference的结果,即为不是两个数组所共有的元素。
Python代码:
相关问题
1.找出不是两个数组共有的元素:输入一个正整数n(1<n<=10),再输入n个整数,存入第一个数组中,然后输入一个正整数m(1<m<=10),再输入m个整数,存入第二个数组中,找出所有不是这两个数组共有的元素。试编写相应的程序。
好的,我来为您编写一个程序来解决这个问题。以下是相应的Python代码:
```python
def find_unique_elements(arr1, arr2):
set1 = set(arr1)
set2 = set(arr2)
unique_to_arr1 = set1 - set2
unique_to_arr2 = set2 - set1
return list(unique_to_arr1.union(unique_to_arr2))
# 输入数组大小
n = int(input("请输入第一个数组的大小(1<n<=10): "))
while n <= 1 or n > 10:
n = int(input("输入无效!请输入第一个数组的大小(1<n<=10): "))
# 输入第一个数组
arr1 = []
print(f"请输入 {n} 个整数存入第一个数组:")
for _ in range(n):
num = int(input())
arr1.append(num)
# 输入第二个数组大小
m = int(input("请输入第二个数组的大小(1<m<=10): "))
while m <= 1 or m > 10:
m = int(input("输入无效!请输入第二个数组的大小(1<m<=10): "))
# 输入第二个数组
arr2 = []
print(f"请输入 {m} 个整数存入第二个数组:")
for _ in range(m):
num = int(input())
arr2.append(num)
# 找出不是两个数组共有的元素
unique_elements = find_unique_elements(arr1, arr2)
# 输出结果
print("不是两个数组共有的元素有:", unique_elements)
```
这个程序的工作原理如下:
1. 定义了一个函数 `find_unique_elements`,它接受两个数组作为参数,并返回不是这两个数组共有的元素。
2. 使用集合(set)来存储数组元素,以便于进行集合运算。
3. 使用集合的差集操作找出只属于一个数组的元素。
4. 使用集合的并集操作将两部分唯一的元素合并。
5. 主程序中,我们首先验证用户输入的数组大小是否在有效范围内。
6. 然后,我们读取用户输入的数组元素。
7. 最后,我们调用 `find_unique_elements` 函数并输出结果。
这个程序可以处理1<n<=10 和 1<m<=10 的情况,并且能够正确找出不是两个数组共有的元素。
c语言1.找出不是两个数组共有的元素:输入一个正整数n(1<n<=10),再输入n个整数,存入第一个数组中,然后输入一个正整数m(1<m<=10),再输入m个整数,存入第二个数组中,找出所有不是这两个数组共有的元素。试编写相应的程序。
以下是一个用C语言编写的程序,用于找出两个数组中不共有的元素:
```c
#include <stdio.h>
#define MAX_SIZE 10
void findUniqueElements(int arr1[], int n, int arr2[], int m) {
int unique1[MAX_SIZE], unique2[MAX_SIZE];
int count1 = 0, count2 = 0;
// 找出第一个数组中不共有的元素
for (int i = 0; i < n; i++) {
int found = 0;
for (int j = 0; j < m; j++) {
if (arr1[i] == arr2[j]) {
found = 1;
break;
}
}
if (!found) {
unique1[count1++] = arr1[i];
}
}
// 找出第二个数组中不共有的元素
for (int i = 0; i < m; i++) {
int found = 0;
for (int j = 0; j < n; j++) {
if (arr2[i] == arr1[j]) {
found = 1;
break;
}
}
if (!found) {
unique2[count2++] = arr2[i];
}
}
// 输出结果
printf("第一个数组中不共有的元素: ");
for (int i = 0; i < count1; i++) {
printf("%d ", unique1[i]);
}
printf("\n第二个数组中不共有的元素: ");
for (int i = 0; i < count2; i++) {
printf("%d ", unique2[i]);
}
printf("\n");
}
int main() {
int n, m;
printf("请输入第一个数组的元素个数(1 < n <= 10): ");
scanf("%d", &n);
if (n <= 1 || n > MAX_SIZE) {
printf("元素个数不合法\n");
return 1;
}
int arr1[MAX_SIZE];
printf("请输入第一个数组的元素: ");
for (int i = 0; i < n; i++) {
scanf("%d", &arr1[i]);
}
printf("请输入第二个数组的元素个数(1 < m <= 10): ");
scanf("%d", &m);
if (m <= 1 || m > MAX_SIZE) {
printf("元素个数不合法\n");
return 1;
}
int arr2[MAX_SIZE];
printf("请输入第二个数组的元素: ");
for (int i = 0; i < m; i++) {
scanf("%d", &arr2[i]);
}
findUniqueElements(arr1, n, arr2, m);
return 0;
}
```
这个程序首先定义了最大数组大小为10,然后通过`findUniqueElements`函数找出两个数组中不共有的元素。具体步骤如下:
1. 输入第一个数组的元素个数和元素。
2. 输入第二个数组的元素个数和元素。
3. 找出第一个数组中不共有的元素,并存储在`unique1`数组中。
4. 找出第二个数组中不共有的元素,并存储在`unique2`数组中。
5. 输出结果。
阅读全文
相关推荐















