7 | 您所在的位置:网站首页 › python编写字典循环输入进球球员进球数 › 7 |
世界杯进行中…… 小明是个不太热心的球迷,收集了一些球赛的比赛信息,请你统计各个球队的进球数,并要求按球队名的字典序(升序)输出各球队名和进球数。 输入格式:首先输入一个整数T,表示后面有T组测试数据。 每组测试数据先输入1个整数n(1 int i, j; team temp; for (i = 0; i < len - 1; i++) for (j = 0; j < len - 1 - i; j++){ if (strcmp(Teams[j].name,Teams[j+1].name)>0) { temp = Teams[j]; Teams[j] = Teams[j + 1]; Teams[j + 1] = temp; } } } int main() { team Teams[40]; //memset(Teams,0,sizeof(team)*40); for( int i = 0; i < 40; i++ ) { Teams[i].kicks = -1; strcpy(Teams[i].name , "xxx"); } int T = 0; int tmCnt = 0; int n = 0; int isnew1,isnew2; char tmname1[11]; char tmname2[11]; int kick1,kick2; scanf("%d",&T); while (T--) { scanf("%d",&n); for (int j = 0; j < 2*n ; j+=2) { scanf("%s%s%d%d",tmname1,tmname2,&kick1,&kick2); //用tmname查一下是否有新队参加; for (int i = 0; i < 2*n;i++) //对Temas进行遍历; { isnew1 = 1; isnew2 = 1; if (strcmp(tmname1,Teams[i].name) == 0) { Teams[i].kicks = Teams[i].kicks + kick1; isnew1 = 0; break; } } for( int i = 0; i < 2*n; i++){ if (strcmp(tmname2,Teams[i].name) == 0) { Teams[i].kicks = Teams[i].kicks + kick2; isnew2 = 0; break; } } //如果tmname是新的,通过isnew判断,并且放到最后; if (isnew1 == 1) { Teams[tmCnt].kicks = kick1; strcpy(Teams[tmCnt].name,tmname1); tmCnt++; } if (isnew2 == 1) { Teams[tmCnt].kicks = kick2; strcpy(Teams[tmCnt].name,tmname2); tmCnt++; } } teamSort(Teams,tmCnt); for(int j = 0; j < tmCnt; j++){ printf("%s %d",Teams[j].name,Teams[j].kicks); if (j < tmCnt - 1) printf("\n"); } } return 0; } 方法2: #include #include struct qiu { char name[11]; int score; }; void sort(struct qiu arr[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (strcmp(arr[j].name, arr[j + 1].name) > 0) { struct qiu temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int main() { int t; scanf("%d", &t); while (t--) { int n; scanf("%d", &n); struct qiu sb[2 * n]; for (int i = 0; i < 2 * n; i += 2) { scanf("%s %s %d %d", sb[i].name, sb[i + 1].name, &sb[i].score, &sb[i + 1].score); } sort(sb, 2 * n); for (int i = 0; i < 2 * n;) { int j = i + 1; while (j < 2 * n && strcmp(sb[j].name, sb[i].name) == 0) { sb[i].score += sb[j].score; j++; } printf("%s %d\n", sb[i].name, sb[i].score); i = j; } } return 0; } |
CopyRight 2018-2019 实验室设备网 版权所有 |