C 语言输入分数,输出排名65


在编程中,经常需要对一组数据进行排序,例如学生的成绩。本文将介绍如何使用 C 语言输入一组分数,并根据这些分数输出学生的排名。

1. 输入分数


首先,我们需要输入一组分数。可以使用以下代码段:```c
#include
int main() {
int n;
printf("输入学生人数:");
scanf("%d", &n);
int scores[n];
printf("输入学生分数:");
for (int i = 0; i < n; i++) {
scanf("%d", &scores[i]);
}
return 0;
}
```

此代码段提示用户输入学生人数,然后逐个输入学生的成绩,并将其存储在数组 scores 中。

2. 排序分数


输入分数后,我们需要对它们进行排序。可以使用以下代码段:```c
// 对 scores 数组进行升序排序
qsort(scores, n, sizeof(int), compare);
// 比较函数,用于比较两个整数
int compare(const void *a, const void *b) {
return *(int *)a - *(int *)b;
}
```

此代码段使用 qsort 函数对 scores 数组进行升序排序。qsort 函数需要三个参数:数组、数组元素数和比较函数。比较函数用于比较两个数组元素,返回它们的差值。在本例中,比较函数将两个整数相减,得到正数表示第一个整数大于第二个整数,负数表示第一个整数小于第二个整数,0 表示两个整数相等。

3. 输出排名


对分数进行排序后,我们可以根据分数输出学生的排名。可以使用以下代码段:```c
// 输出学生排名
for (int i = 0; i < n; i++) {
printf("%d. %d", i + 1, scores[i]);
}
```

此代码段遍历 scores 数组,并逐个输出学生的排名和分数。学生排名从 1 开始,排名靠前的分数较高。

4. 完整的代码


完整的代码如下:```c
#include
#include
// 比较函数
int compare(const void *a, const void *b) {
return *(int *)a - *(int *)b;
}
int main() {
int n;
printf("输入学生人数:");
scanf("%d", &n);
int scores[n];
printf("输入学生分数:");
for (int i = 0; i < n; i++) {
scanf("%d", &scores[i]);
}
// 对 scores 数组进行升序排序
qsort(scores, n, sizeof(int), compare);
// 输出学生排名
for (int i = 0; i < n; i++) {
printf("%d. %d", i + 1, scores[i]);
}
return 0;
}
```

2024-11-20


上一篇:C 语言中的幂函数

下一篇:数组作为 C 语言函数的参数