皮卡丘的编号是? 将两个 一维数组的数 保存到另一个 一维数组当中,且不准有重复的数字
2018-01-21 19:55
302 查看
皮卡丘的编号是?
Time Limit: 1000MSMemory Limit: 65536KB[align=center][/align]Problem Description
精灵宝可梦有成百上千种,皮卡丘只是其中之一哦。这么多种宝可梦当然需要用编号来记录下来,皮卡丘的编号就是25号。宝可梦图鉴是一种能记录遇到的宝可梦的神奇工具,可是它还没有完全开发完成。现在请你帮忙写一个程序,完善图鉴的记录功能。记录功能需要完成这样的要求:如果遇到的宝可梦在图鉴中没有记录,则将该宝可梦的编号加入到图鉴中;如果遇到的宝可梦已经在图鉴中记录,则不处理。例如:图鉴中只记录了25和26号宝可梦,又遇到了27号宝可梦,那图鉴中将会记录25、 26 、27 号宝可梦;如果在此基础上再次遇到27号宝可梦,则图鉴中还是只有25 、26 、27号宝可梦的记录。Input
输入数据有多组,到EOF结束。每组数据,先输入2个整数n,m(1<=n<=807,1<=m<=20),n代表图鉴中已经记录的宝可梦种类数,m代表接下来遇到的宝可梦数量。接下来输入n个整数Ai(1<=Ai<=807),保证Ai是按升序排序的。最后输入m个整数Bi(1<=Bi<=807),代表遇到的宝可梦的编号。Output
对于每组数据,输出最后图鉴中记录的宝可梦种类数,并将图鉴按照升序打印,编号之间用空格隔开。Example Input
7 3 151 251 386 493 649 721 807 151 386 807 2 5 25 26 27 24 22 23 25 5 5 1 4 7 25 133 52 52 52 52 52
Example Output
7 151 251 386 493 649 721 807 6 22 23 24 25 26 27 6 1 4 7 25 52 133
#include<stdio.h>int main(void){ int a[808], b[20], c[1000], i, j, k, t, w, n, m; while(~scanf("%d %d", &n, &m)) { k = 0; w = 0; for(i = 0; i < n; i++) { scanf("%d", &a[i]); c[k++] = a[i]; } for(i = 0; i < m; i++) { scanf("%d", &b[i]); for(j = 0; j < n; j++) { if(b[i] == a[j]) { break; } if(b[i] == b[i - 1]) { break; } if(j == n - 1) { c[k++] = b[i]; w++; } } } w += n; for(i = 0; i < w; i++) { for(j = 0; j < w - i - 1; j++) { if(c[j] > c[j + 1]) { t = c[j], c[j] = c[j + 1], c[j + 1] = t; } } } printf("%d\n", w); for(i = 0; i < w; i++) { printf("%d%c", c[i], i == w - 1?'\n':' '); } } return 0;}
相关文章推荐
- 已知数组长度为100,且基本有序,里面有仅有两个数字位置不对,但具体是那两个数字不知道,数字不重复
- /*算法从9个数中取出3个3位数其中两个3位数相加等于另一个3位数其中每位数字不能重复,c语言怎么实现*/
- 一个数组中有30个数(随机产生[0,30]),将数组中重复的数字去除,动态创建数组保存剩下的数字
- java 两个int数组删除重复的数字,并返回删除后的数组
- 已知一个数组int[98],该数组里面存储了0~99共100个数字中的98个,数字不重复,请用算法算出0~99中缺少的2个数字是哪两个?
- 【剑指offer】数组中找两个不重复数字
- C语言计算一维数组重复数字(最大)的个数及数字所有位置
- 两个整形数组,求其重复数字的个数
- 程序员面试题目总结--数组(二)【二分查找、找出给定数字出现次数、两个有序整型数组交集、找出数组中唯一的重复元素、判断数组中的数值是否连续相邻】
- 程序员面试题目总结--数组(三)【旋转数组的最小数字、旋转数组中查找指定数、两个排序数组所有元素中间值、数组中重复次数最多的数、数组中出现次数超过一半的数】
- 讲两个int 数组找出重复的数字 用最少的循环
- 合法IP&窗口最大值数组&打印素数&递归逆序一个栈&栈排序另一个栈&MyString&寻找数组中出现的重复字符&数组中的重复数字&逆序打印链表&空格替换成%20
- [置顶] 219. Contains Duplicate II---数组中两个重复的数字的下标最多相差k
- 一个数组中有30个数(随机产生[0,30]),将数组中重复的数字去除,动态创建数组保存剩下的数字
- 随机生成30个数字(范围0-30)存到一个数组中,将数组中重复的数字去除,动态创建数组保存剩下的数字
- 数组中重复的数字
- 遇到的比较有意思的问题(1)去掉重复数字(2)提取数组的子数组,求和最大的子数组、最大的子数组和
- 去掉数组中重复的数字
- C/C++面试之算法系列--去除数组中的重复数字
- 删除排序数组中的重复数字