解题思路:这题最关键的是要注意当输入的数据,00123,0000等这些情况,
刚开始用long long, WA了好几发,非常迷茫,后来突然想起特殊数据,
用字符串,则轻松解决问题。顺便多说两句:当你发现以你的思路写的
题不可能出错时,有两种最大的可能,1.题目理解有误。 2.特殊数据。
1 #include2 #include 3 #include 4 using namespace std; 5 const int maxn = 105; 6 7 struct node{ 8 char num[20]; 9 char str[25];10 }p[maxn];11 12 int main()13 {14 int n, m;15 char s[20];16 while(~scanf("%d %d", &n, &m))17 {18 19 for(int i = 0; i < n; i++)20 {21 scanf("%s", p[i].num); //也可以用23,24行取代这两行22 scanf("%s", p[i].str);23 //scanf("%s", &p[i].num);24 //scanf("%s", &p[i].str);25 }26 while(m--)27 {28 scanf("%s", s);29 int flag = 0;30 for(int i = 0; i < n; i++)31 {32 if(strcmp(p[i].num, s) == 0) //比较字符串是否相等33 {34 printf("%s\n", p[i].str);35 flag = 1;36 break;37 }38 }39 if(!flag) printf("%s\n", s);//如果不相等,则输出输入的字符串40 }41 }42 return 0;43 }