算法提高:淘淘的名单

问题描述
  by ZBY... :) 淘淘拿到了一份名单,他想对上面的名字进行处理,挑出一些特殊的名字,他请你来帮忙。
  淘淘关注以下名字:
  如果这个名字是“WYS”,他希望你的程序输出“KXZSMR”。
  如果这个名字是“CQ”,他希望你的程序输出“CHAIQIANG”。
  如果这个名字是“LC“,他希望你的程序输出“DRAGONNET”。
  如果这个名字是“SYT”或“SSD”或“LSS”或“LYF”,他希望你的程序输出“STUDYFATHER”。
  如果这个名字与上述任意名字都不相同,他希望你的程序输出“DENOMINATOR”。
输入格式
  第一行有一个整数N,表示淘淘手中名单里的人数。
  接下来N行,每行有一个字符串,即名单里的人名。
输出格式
  输出N行,每行输出每个人名的判断结果。
样例输入
9
WYS
CQ
WYS
LC
SYT
SSD
LSS
LYF
ZBY
样例输出
KXZSMR
CHAIQIANG
KXZSMR
DRAGONNET
STUDYFATHER
STUDYFATHER
STUDYFATHER
STUDYFATHER
DENOMINATOR
数据规模和约定
  对于 50% 数据,N <= 1000,且名单中的名字仅可能为“WYS”,“CQ”,“LC”三者之一,没有其他的名字。
  对于 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
");
21         }
22         else if (strcmp(nameStr[i], "CQ") == 0)
23         {
24             printf("CHAIQIANG
");
25         }
26         else if (strcmp(nameStr[i], "LC") == 0)
27         {
28             printf("DRAGONNET
");
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
");
33         }
34         else
35         {
36             printf("DENOMINATOR
");
37         }
38     
39     }
40     return 0;
41 }
 
 
原文地址:https://www.cnblogs.com/ZhengLijie/p/12526866.html