c语言一个比赛有n个选手参赛
时间: 2024-12-13 09:28:29 浏览: 2
在C语言中,如果描述一个比赛场景,假设有一个包含n个选手的比赛,你可以这样设计:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义结构体表示选手
typedef struct {
int id; // 选手编号
char name[50]; // 选手姓名
float score; // 选手得分
} Player;
// 比赛数组,存储所有选手信息
Player* players = NULL;
int num_of_players = 0;
// 函数用于添加选手到比赛
void add_player(int id, char* name, float score) {
Player* new_player = (Player*) malloc(sizeof(Player));
if (new_player != NULL) {
new_player->id = id;
strcpy(new_player->name, name);
new_player->score = score;
players[num_of_players++] = *new_player;
} else {
printf("内存分配失败!\n");
}
}
// 显示选手排名
void display_scores() {
for (int i = 0; i < num_of_players; i++) {
printf("%d. %s - 得分: %.2f\n", i + 1, players[i].name, players[i].score);
}
}
int main() {
// 添加选手示例
add_player(1, "张三", 90.0);
add_player(2, "李四", 85.0);
add_player(3, "王五", 95.0);
// 显示比赛结果
display_scores();
return 0;
}
```
在这个例子中,我们首先创建了一个`Player`结构体来存储选手的信息,然后通过动态内存分配创建了选手数组`players`。`add_player`函数用于添加新选手,`display_scores`函数则按得分对选手进行排序并显示。
阅读全文