冬奥运会国家金牌数量排序实现,用c语言解决
时间: 2023-06-20 11:09:10 浏览: 129
用C语言解决各种排序问题
可以使用C语言中的结构体来实现这个功能。首先定义一个表示国家的结构体,包含国家名称和金牌数量两个字段。然后定义一个数组,存储所有参加冬奥会的国家的信息。最后按照金牌数量从多到少进行排序,输出排名结果即可。
以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
// 定义国家结构体
struct country {
char name[20];
int gold_medals;
};
int main() {
struct country countries[] = {
{"中国", 10},
{"美国", 8},
{"日本", 5},
{"韩国", 3},
{"加拿大", 2},
// 其他国家信息...
};
int num_countries = sizeof(countries) / sizeof(struct country);
// 按照金牌数量从多到少排序
for (int i = 0; i < num_countries - 1; i++) {
for (int j = i + 1; j < num_countries; j++) {
if (countries[i].gold_medals < countries[j].gold_medals) {
struct country temp = countries[i];
countries[i] = countries[j];
countries[j] = temp;
}
}
}
// 输出排名结果
printf("冬奥会国家金牌数量排名:\n");
for (int i = 0; i < num_countries; i++) {
printf("%d. %s:%d\n", i + 1, countries[i].name, countries[i].gold_medals);
}
return 0;
}
```
输出结果:
```
冬奥会国家金牌数量排名:
1. 中国:10
2. 美国:8
3. 日本:5
4. 韩国:3
5. 加拿大:2
```
需要注意的是,这个示例代码中的国家信息是手动添加的,实际应用中可能需要从文件或数据库中读取。
阅读全文