字符串比较 帅到没朋友
6-1 字符串比较
函数fun的功能是比较两个字符串,如果s1=s2,则返回值0;如果s1>s2,则返回值1;如果s1<s2,则返回-1。
函数接口定义:
int fun(char a[],char b[]);
其中a
、b
是用户传入的参数。 函数比较两个字符串,如果a
=b
,则返回值0;如果a
>b
,则返回值1;如果a
<b
,则返回-1。
裁判测试程序样例:
#include "stdio.h" #include "string.h" int fun(char a[],char b[]); int main() {int t; char s1[40],s2[40]; gets(s1); gets(s2); t=fun(s1,s2); printf("%d\n",t); return 0; } /* 请在这里填写答案 */
输入样例:
asd
fg
输出样例:
-1
解题思路:
1.因为裁判测试程序引入了string.h的头文件,所以可以使用其中的strcmp()函数进行字符串匹配
2.strcmp(s1,s2)函数:如果s1=s2,则返回值0;如果s1>s2,则返回值大于零;如果s1<s2,则返回小于零。
int fun(char a[],char b[]) { int n = 0; n = strcmp(a, b); if (n == 0) { return 0; }else if(n>0) { return 1; }else if(n<0) { return -1; } }
7-4 帅到没朋友
当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。
输入格式:
输入第一行给出一个正整数N
(≤100),是已知朋友圈的个数;随后N
行,每行首先给出一个正整数K
(≤1000),为朋友圈中的人数,然后列出一个朋友圈内的所有人——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔;之后给出一个正整数M
(≤10000),为待查询的人数;随后一行中列出M
个待查询的ID,以空格分隔。
注意:没有朋友的人可以是根本没安装“朋友圈”,也可以是只有自己一个人在朋友圈的人。虽然有个别自恋狂会自己把自己反复加进朋友圈,但题目保证所有K
超过1的朋友圈里都至少有2个不同的人。
输出格式:
按输入的顺序输出那些帅到没朋友的人。ID间用1个空格分隔,行的首尾不得有多余空格。如果没有人太帅,则输出No one is handsome
。
注意:同一个人可以被查询多次,但只输出一次。
输入样例1:
3 3 11111 22222 55555 2 33333 44444 4 55555 66666 99999 77777 8 55555 44444 10000 88888 22222 11111 23333 88888
输出样例1:
10000 88888 23333
输入样例2:
3 3 11111 22222 55555 2 33333 44444 4 55555 66666 99999 77777 4 55555 44444 22222 11111
输出样例2:
No one is handsome
解题思路:
1.因为ID号均为5位数字,所以范围在00000-99999之间,用数组record[100000]记录该ID是否出现过,没出现过为0,出现过为1
2.根据输入来查找数组record,判断查找的ID是否出现,查找过后将record[ID]改为1,可以避免重复查找
3.因为题干保证所有K
超过1的朋友圈里都至少有2个不同的人,所以在读入的时候可以进行判断,如果ID只有一个,则可以不读入。(一开始我是有进行判断K=1的,但是修改代码后提交的运行结果没有变化,所以保留了修改)
#include<stdio.h> int main(){ int n,j; int record[100000]={0}; scanf("%d",&n); for(int i=0;i<n;i++){ int k; scanf("%d",&k); int id; if(k==1){ scanf("%d",&id); }else if(k>1){ for(j=0;j<k;j++){ scanf("%d",&id); record[id] = 1; } } } int m; int count = 0; scanf("%d",&m); for(int i=0;i<m;i++){ int id; scanf("%d",&id); if(record[id] == 0){ if(count == 0){ printf("%05d",id); } else { printf(" %05d",id); } record[id] = 1; count++; } } if (count == 0) { printf("No one is handsome"); } }