【PTA浙大版《C语言程序设计(第4版)》编程题】练习7-4 找出不是两个数组共有的元素(附测试点)

news/2024/7/7 18:51:36

目录

输入格式:

输出格式:

输入样例:

输出样例:

代码呈现

测试点


给定两个整型数组,本题要求找出不是两者共有的元素。

输入格式:

输入分别在两行中给出两个整型数组,每行先给出正整数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


http://lihuaxi.xjx100.cn/news/2008483.html

相关文章

nodejs+vue企业公司设备维护报修管理系统6p9i9

为设计一个安全便捷&#xff0c;并且使用户更好获取工厂生产设备维护信息&#xff0c;本文主要有安全、简洁为理念&#xff0c;实现用户快捷寻找工厂生产设备维护信息&#xff0c;从而解决工厂生产设备维护信息复杂难辨的问题。该系统采用nodejs语言、vue框架和mysql数据库进行…

qt5-入门-信号槽理解+QMainWindow

参考&#xff1a; Qt 深入了解信号槽_w3cschool https://www.w3cschool.cn/learnroadqt/wz3t1j47.html Qt MainWindow_w3cschool https://www.w3cschool.cn/learnroadqt/uqjl1j4b.html 本地环境&#xff1a; win10专业版&#xff0c;64位 信号槽 最简单的例子&#xff1a;写一…

java并发执行批量插入

java并发执行批量插入 1、mybatis-plus批量插入 long start System.currentTimeMillis();int num 5000; //一次批量插入的数量int j 0;for (int i 0;i<20;i){List<User> userList new ArrayList<>();while (true){j;User user new User();user.setUserP…

【数据结构】单向链表实现 超详细

目录 一. 单链表的实现 1.准备工作及其注意事项 1.1 先创建三个文件 1.2 注意事项&#xff1a;帮助高效记忆和理解 2.链表的基本功能接口 2.0 创建一个 链表 2.1 链表的打印 3.链表的创建新节点接口 4.链表的节点插入功能接口 4.1 尾插接口 4.2 头插接口 4.3 指定位…

了解野指针与assert断言 拿捏指针的使用!

目录 1.野指针 野指针的成因&#xff1a; 2.规避野指针 3.assert断言 创作不易&#xff0c;宝子们&#xff01;如果这篇文章对你们有帮助的话&#xff0c;别忘了给个免费的赞哟~ 1.野指针 概念&#xff1a;野指针就是指针指向的位置是不可知的&#xff08;随机的、不正确的…

Python爬虫的基本原理

我们可以把互联网比作一张大网&#xff0c;而爬虫&#xff08;即网络爬虫&#xff09;便是在网上爬行的蜘蛛。把网的节点比作一个个网页&#xff0c;爬虫爬到这就相当于访问了该页面&#xff0c;获取了其信息。可以把节点间的连线比作网页与网页之间的链接关系&#xff0c;这样…

flowable 设置自定义属性教程

概述 由于工作需要给flowable工作流设计器添加自定义属性&#xff0c;以满足功能实现。所以这篇文章介绍下用flowable 开源的的flowable-ui 前端添加自定义属性&#xff0c;后端解析属性值的例子。 技术栈 序号技术点名称版本1Flowable6.8.0 使用的是flowable6.8.0 版的代码…

七、jsBOM

7.1概念 BOM:浏览器对象模型&#xff08;Browser Object Model),是一个用于访问浏览器和计算机屏幕的对像集合。 我们可以通过全局对象window来访问这些对像. 7.2 BOM相关对象和方法 // window.document 当前页面所载入的文档&#xff0c;它的方法和属性也属于DOM对像所涵盖…