c语言用eaxyx写排行榜
时间: 2023-08-21 07:03:30 浏览: 82
根据您的描述,我猜测 EaxyX 可能是一种自己创造的编程语言,我无法直接使用这种编程语言进行编程。但是,我可以为您提供一个 C 语言实现的排行榜案例供您参考。
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 20
#define MAX_SCORES 10
typedef struct {
char name[MAX_NAME_LEN];
int score;
} ScoreRecord;
int main() {
ScoreRecord scores[MAX_SCORES];
int numScores = 0, i, j, tempScore;
char tempName[MAX_NAME_LEN];
// 读入排行榜
FILE *fp = fopen("scores.txt", "r");
if (fp) {
while (fscanf(fp, "%s %d", scores[numScores].name, &scores[numScores].score) == 2) {
numScores++;
}
fclose(fp);
}
// 添加新得分
printf("请输入您的名字和得分:");
scanf("%s %d", tempName, &tempScore);
if (numScores < MAX_SCORES || tempScore > scores[MAX_SCORES - 1].score) {
// 将新得分插入排行榜
if (numScores < MAX_SCORES) {
numScores++;
}
for (i = numScores - 1; i > 0 && tempScore > scores[i-1].score; i--) {
strcpy(scores[i].name, scores[i-1].name);
scores[i].score = scores[i-1].score;
}
strcpy(scores[i].name, tempName);
scores[i].score = tempScore;
}
// 输出排行榜
printf("排行榜:\n");
for (i = 0; i < numScores; i++) {
printf("%d.\t%s\t%d\n", i+1, scores[i].name, scores[i].score);
}
// 保存排行榜
fp = fopen("scores.txt", "w");
if (fp) {
for (i = 0; i < numScores; i++) {
fprintf(fp, "%s %d\n", scores[i].name, scores[i].score);
}
fclose(fp);
}
return 0;
}
```
这个程序使用结构体 `ScoreRecord` 来存储每个玩家的得分记录,包括名字和得分。程序先从文件中读取已有的排行榜,然后再读取用户输入的新得分,将其插入到排行榜中并按照得分排序,最后输出排行榜并保存到文件中。请注意,为了简化代码,这里假设排行榜中最多只有10个记录,如果排行榜已满,新得分只有在高于排行榜中最低得分时才能进入排行榜。
阅读全文