UVA10420 List of Conquests
题不难 我交了八次。。 刚开始以为还要判断一个国家会不会重复妇女的名字 写的复杂了 一直runtime 看了下别人的代码 知道不用判断 删去了一大部分 之后开始WA 最后找到原因 是因为除国家外 因为不确定名字的字符串数 名字用gets输入
开两个数组 一个存国家 一个存数量 有输入重复的国家 就剪掉
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }