-
2022-01-23 22:39:18
给定两个整型数组,本题要求找出不是两者共有的元素。
输入格式:
输入分别在两行中给出两个整型数组,每行先给出正整数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
直接看代码!!!
#include<stdio.h> int main() { int m,n,a[20],b[20],c[20]={0},d[20]={0}; int i,cnt,j,t,z,p,flag,k; scanf("%d",&m); for(i=0;i<m;i++) scanf("%d",&a[i]); scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&b[i]); cnt=0; for(i=0;i<m;i++) for(j=0;j<n;j++) if(a[i]==b[j]) { c[cnt]=a[i];cnt++; } t=0; for(i=0;i<m;i++) { flag=0; for(j=0;j<cnt;j++) if(a[i]==c[j]) { flag=1;break; } if(flag==0) {d[t]=a[i];t++;} } z=t; for(i=0;i<n;i++) { flag=0; for(j=0;j<cnt;j++) if(b[i]==c[j]) { flag=1;break; } if(flag==0) { d[z]=b[i];z++; } } for(i=0;i<z;i++) { flag=0; for(j=0;j<i;j++)//注意我们要先输出数组前面的元素,所以要用该元素后的元素跟他比来判断是否重复 { if(d[i]==d[j]) { flag=1;break; } } if(flag==0&&i!=(z-1))printf("%d ",d[i]); if(flag==0&&i==(z-1))printf("%d",d[i]); } return 0; }
这题思路不难,就是写起来有点费手指头,我连想带写花了整整一个小时,唉,还是太菜了 。
其实这题的代码可以再简化一下,将第一个数组和第二个数组相比找出不是共有的元素,然后再用第二个数组和第一个数组比较找出不是共有的元素,然后就可以得出来数组D了奥~
更多相关内容 -
PTA -----找出不是两个数组共有的元素
2021-05-24 00:55:16#includeint main(){int m;while (scanf("%d", &m) !=EOF){int a[20], i;for (i = 0; i < m; i++)scanf("%d", &a[i]);int n;scanf("%d", &n);int b[20];for (i = 0; i < n;......#include
int main()
{
int m;
while (scanf("%d", &m) !=EOF)
{
int a[20], i;
for (i = 0; i < m; i++)
scanf("%d", &a[i]);
int n;
scanf("%d", &n);
int b[20];
for (i = 0; i < n; i++)
scanf("%d", &b[i]);
int j;
int c[20], k;
k = 0;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
if (a[i] == b[j])
break;
}
if (j >= n)
{
c[k] = a[i];
k++;
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
if (b[i] == a[j])
break;
}
if (j >= m)
{
c[k] = b[i];
k++;
}
}
printf("%d", c[0]);
for (i = 1; i < k; i++)
{
for (j = 0; j < i; j++)
{
if (c[i] == c[j])
break;
}
if (j >= i)
printf(" %d", c[i]);
}
printf("\n");
}
return 0;
}
-
找出不是两个数组共有的元素
2021-07-18 09:58:26练习7-4 找出不是两个数组共有的元素 (20 分) 给定两个整型数组,本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 ...题目
练习7-4 找出不是两个数组共有的元素 (20 分)
给定两个整型数组,本题要求找出不是两者共有的元素。输入格式:
输入分别在两行中给出两个整型数组,每行先给出正整数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分析
有两个条件,1.按照数字给出的顺序输出不是两数组共有的元素,2.同一数字不重复输出。
不改变原始顺序的去重:删去一个重复元素后,修改整个大循环的限定条件。
通常来说for循环的条件表达式是一个固定的数,但这里它根据需要进行了调整。
代码
#include<stdio.h> int main(){ int n,m,i,j,a[21],b[21],c[50],k=0; scanf("%d",&n); for(i=0;i<n;++i){ scanf("%d",&a[i]); } scanf("%d",&m); for(i=0;i<m;++i){ scanf("%d",&b[i]); } for(i=0;i<n;++i){//查第一个数组有,第二个数组无的元素 for(j=0;j<m;++j){ if(a[i]==b[j]) break; } if(j==m){ c[k]=a[i]; k++; } } for(i=0;i<m;++i){//查第二个数组有,第一个数组无的元素 for(j=0;j<n;++j){ if(a[j]==b[i]) break; } if(j==n){ c[k]=b[i]; k++; } } int l; for(i=0;i<k;++i){//数组去重,不改变原始顺序,并更新数组 for(j=i+1;j<k;++j){ if(c[i]==c[j]){ for(l=j+1;l<k;++l){ c[l-1]=c[l]; } k=k-1;//重复的去掉,因此数组长度减一 } } } for(i=0;i<k;++i){ if(i==0) printf("%d",c[i]); else printf(" %d",c[i]); } }
-
PTA习题 找出不是两个数组共有的元素
2021-03-21 18:00:25题目:给定两个整型数组,本题要求找出不是两者共有的元素。 源码: #include <stdio.h> int main(void) { int m,n,i,j,k,flag1 = 1,cnt = 0,flag2 = 1,b[40] = {0}; //数组b用于存放要输出的元素 scanf("%d...题目:给定两个整型数组,本题要求找出不是两者共有的元素。
源码:#include <stdio.h> int main(void) { int m,n,i,j,k,flag1 = 1,cnt = 0,flag2 = 1,b[40] = {0}; //数组b用于存放要输出的元素 scanf("%d",&m); int a1[m]; for(i = 0;i < m;i++) scanf("%d",&a1[i]); //输入第一个数组 scanf("%d",&n); int a2[n]; for(i = 0;i < n;i++) scanf("%d",&a2[i]); //输入第二个数组 for(i = 0;i < m;i++) { flag1 = 1; for(j = 0;j < n;j++) { if(a1[i] == a2[j]) { flag1 = 0; break; } } //逐个找出a1中有而a2中没有的元素 if(flag1) { for(k = 0;k < cnt;k++) { flag2 = 1; if(a1[i] == b[k]) { flag2 = 0; break; } } if(flag2) { cnt++; b[cnt - 1] = a1[i]; } //将a1中有而a2中没有的元素与要输出的元素进行比较,没有相同的则留下 } } for(j = 0;j < n;j++) { flag1 = 1; for(i = 0;i < m;i++) { if(a2[j] == a1[i]) { flag1 = 0; break; } } //逐个找出a2中有而a1中没有的元素 if(flag1) { for(k = 0;k < cnt;k++) { flag2 = 1; if(a2[j] == b[k]) { flag2 = 0; break; } } if(flag2) { cnt++; b[cnt - 1] = a2[j]; } //将a1中有而a2中没有的元素与要输出的元素进行比较,没有相同的则留下 } } for(i = 0;i < cnt;i++) if(i) printf(" %d",b[i]); else printf("%d",b[i]); return 0; }
-
7-6 找出不是两个数组共有的元素
2021-12-25 20:19:37输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。... -
实验7-1-8 找出不是两个数组共有的元素 (20 分)
2021-12-29 14:17:14输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。... -
D. 实验7-1-8 找出不是两个数组共有的元素
2021-12-10 21:48:49实验7-1-8 找出不是两个数组共有的元素 题目描述 给定两个整型数组,本题要求找出不是两者共有的元素。 输入 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 ... -
练习7-4 找出不是两个数组共有的元素(C语言)
2021-07-08 09:53:56输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。... -
【PTA】找出不是两个数组共有的元素
2020-12-01 20:10:23输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。... -
PTA练习7-4 找出不是两个数组共有的元素 (20 分)-麻烦
2021-08-01 19:54:21该题大概思路容易想到,找不是两个数组共有的元素倒是挺好找,但是具体实现起来也是不大容易,多个输入时调试也挺麻烦的,主要做起来有个比较麻烦的地方。就是不是两个数组共有的元素有两个,但是最终只能够输出一... -
【数组】找出不是两个数组共有的元素 (20 分)Java
2021-09-12 22:08:43输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。... -
PTA 找出不是两个数组共有的元素
2020-08-19 11:40:01输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。... -
7-9 找出不是两个数组共有的元素 (20 分) C++
2022-03-24 13:38:167-9 找出不是两个数组共有的元素 (20 分) C++ -
练习7-4 找出不是两个数组共有的元素 (20 分)
2022-04-05 17:43:02输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。... -
C语言 找出不是两个数组共有的元素
2020-08-16 10:53:16找出不是两个数组共有的元素 给定两个整型数组,本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中... -
练习7-8 找出不是两个数组共有的元素(20 分)
2021-12-03 18:16:40练习7-8 找出不是两个数组共有的元素(20 分) -
【PTA 7-6】找出不是两个数组共有的元素
2021-12-18 16:58:15给定两个整型数组,本题要求找出不是两者共有的元素。 -
7-5 找出不是两个数组共有的元素 (20分)
2021-01-13 16:42:447-5 找出不是两个数组共有的元素 (20分) 给定两个整型数组,本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式... -
实验7-1-4 找出不是两个数组共有的元素 (20 分)
2021-07-30 16:20:22输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。... -
Python|找出不是两个数组共有的元素
2021-01-08 00:00:00本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。前言数在日常生活中,我们常常需要去辨别两个事物的不同之处,现在我们可以尝试用程序去找出两组数据... -
c语言 找出不是两个数组共有的元素
2020-03-29 11:09:24输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。... -
js算法之找出不是两个数组共有的元素
2021-04-02 00:59:48<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script type="text/... var b=[6 ,4, 8, 2, -
《程序设计基础》 第七章 数组 7-7 找出不是两个数组共有的元素 (20 分)
2021-11-10 15:15:24输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。... -
第4章-29 找出不是两个数组共有的元素 (20 分)
2022-04-20 10:08:44输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。... -
【PTA题目】7-8 找出不是两个数组共有的元素 (20 分)
2021-11-02 23:37:23输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。... -
PTA找出不是两个数组共有的元素
2019-12-24 20:46:51找出不是两个数组共有的元素 如: input 10 3 -5 2 8 0 3 5 -15 9 100 11 6 4 8 2 6 -5 9 0 100 8 1 output 3 5 -15 6 4 1 #include <stdio.h> #include <stdlib.h> int main() { int m; while(~...
-
介绍一<em>个</em>模板动态<em>数组</em>本代码提供对动态<em>数组</em>的支持,在内存中程序将数据分块存放,避免了大块内存的申请。同时,与普通的双向链表不同,本代码提供...本代码提供C、C++<em>两个</em>版本,可以任意使用
-
100<em>个</em>经典算法c语言实现代码压缩包中包含100<em>个</em>经典的算法,常见的兔子繁殖,斐波那契数列等等有详细的代码
-
C语言100<em>个</em>经典算法C语言 100<em>个</em> 经典 算法 .............................
-
100<em>个</em>经典的C语言算法C语言的学习要从基础开始,这里是100<em>个</em>经典的算法- 如兔子问题,素数问题等等
-
100<em>个</em>经典的C算法100<em>个</em>经典的 C算法,易于掌握C的各种算法和各种语句的使用