算法提高:淘淘的名单
问题描述
by ZBY... :) 淘淘拿到了一份名单,他想对上面的名字进行处理,挑出一些特殊的名字,他请你来帮忙。
淘淘关注以下名字:
如果这个名字是“WYS”,他希望你的程序输出“KXZSMR”。
如果这个名字是“CQ”,他希望你的程序输出“CHAIQIANG”。
如果这个名字是“LC“,他希望你的程序输出“DRAGONNET”。
如果这个名字是“SYT”或“SSD”或“LSS”或“LYF”,他希望你的程序输出“STUDYFATHER”。
如果这个名字与上述任意名字都不相同,他希望你的程序输出“DENOMINATOR”。
淘淘关注以下名字:
如果这个名字是“WYS”,他希望你的程序输出“KXZSMR”。
如果这个名字是“CQ”,他希望你的程序输出“CHAIQIANG”。
如果这个名字是“LC“,他希望你的程序输出“DRAGONNET”。
如果这个名字是“SYT”或“SSD”或“LSS”或“LYF”,他希望你的程序输出“STUDYFATHER”。
如果这个名字与上述任意名字都不相同,他希望你的程序输出“DENOMINATOR”。
输入格式
第一行有一个整数N,表示淘淘手中名单里的人数。
接下来N行,每行有一个字符串,即名单里的人名。
接下来N行,每行有一个字符串,即名单里的人名。
输出格式
输出N行,每行输出每个人名的判断结果。
样例输入
9
WYS
CQ
WYS
LC
SYT
SSD
LSS
LYF
ZBY
WYS
CQ
WYS
LC
SYT
SSD
LSS
LYF
ZBY
样例输出
KXZSMR
CHAIQIANG
KXZSMR
DRAGONNET
STUDYFATHER
STUDYFATHER
STUDYFATHER
STUDYFATHER
DENOMINATOR
CHAIQIANG
KXZSMR
DRAGONNET
STUDYFATHER
STUDYFATHER
STUDYFATHER
STUDYFATHER
DENOMINATOR
数据规模和约定
对于 50% 数据,N <= 1000,且名单中的名字仅可能为“WYS”,“CQ”,“LC”三者之一,没有其他的名字。
对于 100% 数据,N <= 10000,人名仅由大写字母组成,长度不超过5。
对于 100% 数据,N <= 10000,人名仅由大写字母组成,长度不超过5。
思路:没什么思路,就是要注意
1.输入数字后再输入字符串需要加getchar()
2.大数组开全局
3.不能直接用 == 比较字符串是否相等,用strcmp
1 #include<stdio.h> 2 #include<string.h> 3 4 char nameStr[10000][20] = { 0 }; 5 int main(void) 6 { 7 int n, i; 8 9 scanf("%d", &n); 10 getchar(); 11 for (i = 0; i < n; i++) 12 { 13 gets(nameStr[i]); 14 } 15 16 for (i = 0; i < n; i++) 17 { 18 if (strcmp(nameStr[i], "WYS") == 0) 19 { 20 printf("KXZSMR\n"); 21 } 22 else if (strcmp(nameStr[i], "CQ") == 0) 23 { 24 printf("CHAIQIANG\n"); 25 } 26 else if (strcmp(nameStr[i], "LC") == 0) 27 { 28 printf("DRAGONNET\n"); 29 } 30 else if (strcmp(nameStr[i], "SYT") == 0 || strcmp(nameStr[i], "SSD") == 0 || strcmp(nameStr[i], "LSS") == 0 || strcmp(nameStr[i], "LYF") == 0) 31 { 32 printf("STUDYFATHER\n"); 33 } 34 else 35 { 36 printf("DENOMINATOR\n"); 37 } 38 39 } 40 return 0; 41 }