1、编写程序,它能读入构成集合A,B的两组非零整数x1,x2 ,……,xm ,y1 ,y2 ,……,yn 。计算A与B的交集A∩B,再以由小到大的顺序输出A∩B中的元素,A∩B为空时无输出。
第一行输入集合的长度,第二行输入集合A中的数字,每个数字以空格隔开,第三行输入集合B中的数字,每个数字以空格隔开。
示例1:
输入:
4 5
1 3 5 7
5 3 1 9 10
输出:
1 3 5
(我剩把交集内的元素排序不太懂,就是单独写一个还会,把它和前面的问题连起来就写不出了)
2、写一个函数,输入一串数字,长度不超过100,要求输出这串数字字符,但每两个数字间空一个空格。
如输入1990,应输出“19 90”
(这个问题我只会一个数字隔一个空格,两个数字隔一个空格属实没想到)
3、有3个学生的信息,放在结构体数组中,要求输出全部学生的信息。
[输入用例]
10101
Li Lin
M
18
10102
Zhang Fun
M
19
10104
Wang Min
F
20
注:学生姓名中可能包含空格。
[输出用例]
No. Name sex age
10101 Li Lin M 18
10102 Zhang Fun M 19
10104 Wang Min F 20
[输入用例]
21001
张三
M
20
21002
李四
F
22
21003
王五
M
19
[输出用例]
No. Name sex age
21001 张三 M 20
21002 李四 F 22
21003 王五 M 19
注:输出的数据中间有一个空格
#include<stdio.h>
#include<math.h>
void main()
{
int n,m,i,j,k=0;
scanf("%d%d", &n, &m);
int a[n],b[m],c[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<m;i++)
scanf("%d",&b[i]);
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(b[j] == a[i]){
c[k++] = a[i];
break;
}
}
}
for(i=0;i<k-1;i++)
for(j=0;j<k-i-1;j++)
if(c[j] > c[j+1])
{
int t = c[j];
c[j] = c[j+1];
c[j+1] = t;
}
for(i=0;i<k;i++)
printf("%d ", c[i]);
}