使用字符数组和实型数组分别存储学生姓名和成绩,并通过对学生成绩的排序,按照名次输出字符数组中对应的学生姓名。
时间: 2024-12-04 21:22:38 浏览: 41
当你需要将学生的信息以字符数组存储姓名和实型数组存储成绩时,可以这样做:
首先,创建两个数组,一个用于存储字符串类型的姓名(字符数组),另一个用于存储浮点数类型的分数(实型数组)。例如:
```c++
char studentNames[10][50]; // 学生姓名,最多容纳9个学生的姓名,每个姓名49个字符加上结束符'\0'
float studentScores[10]; // 学生成绩
// 假设已经填充了学生信息
for (int i = 0; i < 10; i++) {
scanf("%s", studentNames[i]); // 输入学生姓名
scanf("%f", &studentScores[i]); // 输入学生分数
}
```
接着,你可以使用标准库函数如`qsort()`对学生成绩进行排序。这里是一个基本的例子,假设我们有一个自定义的比较函数`compareScores()`来比较分数:
```c++
#include <stdlib.h>
#include <string.h>
int compareScores(const void* a, const void* b) {
return (*(float*)a - *(float*)b); // 按降序排列分数
}
void printRanks() {
qsort(studentScores, 10, sizeof(float), compareScores);
for (int i = 0; i < 10; i++) {
int rank = i + 1;
printf("第%d名: %s\n", rank, studentNames[i]);
}
}
```
阅读全文