X的旅游计划
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
X在最后的几周安心学习,考试有惊无险,so,X和女友就要计划一下放假后的时间了,来一场说走就走的旅行,这是两个人的一致想法,但是究竟去哪里玩,就要好好考虑一下了。
X和他的女友都有一些自己想去的地方,于是X想让大家帮他找一找两个人都想去的地方。
输入
测试案例有多组,每个案例:
第一行输入两个数n,m(n < 100 && m < 100)。X想要去的地方有n个,女友想要去的地方有m个。
之后n行,每行一个字符串(长度小于10)表示X想去的地名。
之后m行,每行一个字符串(长度小于10)表示女友想去的地名。
输出
将在n中和在m中都出现过得字符串输出(字典序)。
如果没有相同的字符串,输出”sad!”(不含引号)。
示例输入
2 2 aaa bbb aaa bbb
示例输出
aaa bbb
提示
来源
winddreams
示例程序
//注意字符串的存储用的是二维数组,还有strcmp是字符串比较函数,strcpy是字符串赋值函数,还有按照字典序输出。
- #include<stdio.h>
- #include<string.h>
- char a[110][110], b[110][110];
- int main()
- {
- int n, m;
- while(~scanf("%d%d", &n, &m))
- {
- int t=0, f=0;
- char s[110][110];
- for(int i=0; i<n; i++)
- scanf("%s", a[i]);
- for(int i=0; i<m; i++)
- scanf("%s", b[i]);
- for(int i=0; i<n; i++)
- {
- for(int j=0; j<m; j++)
- {
- if(strcmp(a[i],b[j])==0)
- {
- f=1;
- strcpy(s[t++], a[i]);
- }
- }
- }
- if(f==1)
- {
- char dp[110][110];
- for(int i=0; i<t-1; i++)
- {
- for(int j=0; j<t-i-1; j++)
- {
- if(strcmp(s[j],s[j+1])>0)
- {
- strcpy(dp[j],s[j]);
- strcpy(s[j],s[j+1]);
- strcpy(s[j+1],dp[j]);
- }
- }
- }
- for(int i=0; i<t; i++)
- printf("%s\n", s[i]);
- }
- else
- {
- printf("sad!\n");
- }
- }
- return 0;
- }