设计一个东奥奖牌榜程序c语言
时间: 2023-10-05 16:09:06 浏览: 55
好的,下面是一个简单的东奥奖牌榜程序的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
struct Country {
char name[20];
int gold;
int silver;
int bronze;
};
void printMedalTable(struct Country* countries, int num_countries) {
printf("Country\tGold\tSilver\tBronze\n");
for (int i = 0; i < num_countries; i++) {
printf("%s\t%d\t%d\t%d\n", countries[i].name, countries[i].gold, countries[i].silver, countries[i].bronze);
}
}
void sortMedalTable(struct Country* countries, int num_countries) {
for (int i = 0; i < num_countries - 1; i++) {
for (int j = i + 1; j < num_countries; j++) {
int total_i = countries[i].gold + countries[i].silver + countries[i].bronze;
int total_j = countries[j].gold + countries[j].silver + countries[j].bronze;
if (total_i < total_j) {
struct Country temp = countries[i];
countries[i] = countries[j];
countries[j] = temp;
}
}
}
}
int main() {
int num_countries = 5;
struct Country countries[num_countries] = {
{"USA", 20, 10, 5},
{"China", 15, 20, 10},
{"Japan", 10, 15, 15},
{"Germany", 5, 10, 20},
{"Korea", 10, 5, 15}
};
sortMedalTable(countries, num_countries);
printMedalTable(countries, num_countries);
return 0;
}
```
这个程序定义了一个结构体 `Country` 来表示一个国家/地区,并包括三个成员变量 `gold`、`silver` 和 `bronze` 分别表示该国家/地区的金牌、银牌和铜牌数量。程序还包括两个函数 `printMedalTable` 和 `sortMedalTable`。`printMedalTable` 函数用于输出奖牌榜,`sortMedalTable` 函数用于按照奖牌总数对国家/地区进行排序。
在 `main` 函数中,我们定义了一个包含五个国家/地区的数组 `countries`,并初始化了它们的奖牌数量。然后,我们调用 `sortMedalTable` 函数对国家/地区进行排序,并调用 `printMedalTable` 函数打印出奖牌榜。
你可以根据需要修改程序来适应不同的奖牌榜需求。