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 }

 

你可能感兴趣的:(list)