UVA10420 List of Conquests

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=98&page=show_problem&problem=1361

题不难 我交了八次。。 刚开始以为还要判断一个国家会不会重复妇女的名字 写的复杂了 一直runtime 看了下别人的代码 知道不用判断 删去了一大部分 之后开始WA 最后找到原因 是因为除国家外 因为不确定名字的字符串数 名字用gets输入

开两个数组 一个存国家 一个存数量 有输入重复的国家 就剪掉

View Code
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include<string.h>
 4 int n, i, j, k;
 5 char country[2001][80], t,c1[80],x[80],num[2000];
 6 int main()
 7 {
 8 
 9     memset(num, 0, sizeof(num));
10     scanf("%d%*c", &n);
11     for(i = 1 ; i <= n ; i++)
12     {
13         scanf("%s", country[i]);
14         int f = 0;
15         gets(c1);
16         for(j = 1 ; j < i ; j++)
17         {
18             if(strcmp(country[i],country[j]) == 0)
19             {
20                 i--;
21                 n--;//有重复 剪掉一个
22                 f = 1;
23                 num[j]++;
24                 break;
25             }
26         }
27         if(!f)
28         {
29             num[i]++;
30         }
31     }
32     for(i = 1 ; i < n ; i++)
33     for(j = 1 ; j <= n-i ; j++)
34     {
35         if(strcmp(country[j],country[j+1])>0)
36         {
37             strcpy(x,country[j]);
38             strcpy(country[j],country[j+1]);
39             strcpy(country[j+1],x);
40             t = num[j];
41             num[j] = num[j+1];
42             num[j+1] = t;
43         }
44     }
45     for(i = 1 ; i <= n ; i++)
46     printf("%s %d\n", country[i], num[i]);
47     return 0;
48 }
原文地址:https://www.cnblogs.com/shangyu/p/2581662.html