目录
输入格式:
输出格式:
输入样例:
输出样例:
代码呈现
测试点
给定两个整型数组,本题要求找出不是两者共有的元素。
输入格式:
输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。
输出格式:
在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。
输入样例:
10 3 -5 2 8 0 3 5 -15 9 100
11 6 4 8 2 6 -5 9 0 100 8 1
输出样例:
3 5 -15 6 4 1代码呈现
//C语言
#include <stdio.h>
int main()
{
	// 目标数组 
	int a1[20] = { 0 };
	// 目标数组
	int a2[20] = { 0 };
	// 临时数组
	int a3[20] = { 0 };
	
	// 分别表示两个数组的长度(元素个数)
	int n, m;
	
	// 先输入的表示 a1 的长度,然后输入目标数组 a1 的每个元素
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &a1[i]);
	}
	
	// 先输入的表示 a2 的长度,然后输入目标数组 a2 的每个元素
	scanf("%d", &m);
	for (int i = 0; i < m; i++)
	{
		scanf("%d", &a2[i]);
	}
	
	// k 为临时数组的索引
	int k = 0;
	for (int i = 0; i < n; i++)
	{
		// flag表示假设当前元素在另一个数组中不出现
		int flag = 1;
		for (int j = 0; j < m; j++)
		{
			// 如果找到相同的元素,就将 flag 置为 0 ,假设不成立
			if (a1[i] == a2[j])
			{
				flag = 0;
			}
		}
		
		// 如果假设成功,就将当前元素放入临时数组
		if (flag) a3[k ++] = a1[i];
	}
	for (int i = 0; i < m; i++)
	{
		int flag = 1;
		for (int j = 0; j < n; j++)
		{
			if (a2[i] == a1[j])
			{
				flag = 0;
			}
		}
		if (flag) a3[k++] = a2[i];
	}
	
	// 打印临时数组的数据,重复的只打印一次
	for (int i = 0; i < k; i++)
	{
		int flag = 1;
		
		// 向前寻找看有没有相同元素
		for (int j = 0; j < i; j++)
		{
			// 有就将 flag 置为 0 ,后面的 if 就不进去 
			if (a3[i] == a3[j])
			{
				flag = 0;
			}
		}
		
		// 如果 flag 为 1 ,说明当前的元素没有重复,进入 if
		if (flag)
		{
			// 控制输入格式,题目会检查
			if (!i)
			{
				// 如果是第一个元素就不打印空格
				printf("%d", a3[i]);
			}
			else
			{
				// 将空格往前打印,因为最后不能有空格
				printf(" %d", a3[i]);
			}
		}
	}
	return 0;
} v
v


















