从键盘输入1门课程3位同学成绩,从高到低进行排序,用数组函数的方式。
时间: 2024-02-15 14:05:41 浏览: 16
好的,可以使用以下代码实现:
```python
# 从键盘输入3位同学的成绩
scores = []
for i in range(3):
score = float(input("请输入第{}位同学的成绩:".format(i+1)))
scores.append(score)
# 从高到低进行排序
scores.sort(reverse=True)
# 输出排序结果
print("成绩从高到低的排序结果为:", scores)
```
这里使用了 Python 内置的 `sort` 函数来进行排序,其中 `reverse=True` 表示降序排序。
相关问题
c语言从键盘输入1门课程3位同学成绩,从高到低进行排序,用数组函数的方式。
下面是一个示例代码,用来实现从键盘输入3位同学的成绩并进行排序:
```c
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a, const void *b) {
return *(int*)b - *(int*)a; // 从高到低排序
}
int main() {
int scores[3];
printf("请输入3位同学的成绩:\n");
for (int i = 0; i < 3; i++) {
scanf("%d", &scores[i]);
}
qsort(scores, 3, sizeof(int), cmp); // 调用qsort函数进行排序
printf("排序后的成绩为:\n");
for (int i = 0; i < 3; i++) {
printf("%d ", scores[i]);
}
printf("\n");
return 0;
}
```
上述代码中,我们先定义了一个整型数组`scores`,用于存储3位同学的成绩。然后通过`scanf`函数从键盘输入3位同学的成绩,并将其存储到数组`scores`中。
接着,我们调用了`qsort`函数对数组`scores`进行排序。`qsort`函数是C语言标准库中的一个快速排序函数,它的用法如下:
```c
void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
```
其中,`base`参数表示待排序数组的首地址,`nmemb`表示数组中元素的个数,`size`表示每个元素的大小,`compar`表示用于比较两个元素的函数指针。
在本例中,我们自定义了一个比较函数`cmp`,用于比较两个成绩的大小,并按照从高到低的顺序排序。最后,我们通过循环遍历数组`scores`,并使用`printf`函数输出已经排序好的成绩。
c语言从键盘输入1门课程3位同学成绩,从高到低进行排序,用数组函数的方式。不使用stdlib.h库
以下是使用数组函数的方式对输入的成绩进行排序的示例代码:
```c
#include <stdio.h>
#define N 3 // 学生数
void sort(int arr[], int n); // 排序函数
int main()
{
int scores[N];
// 从键盘输入成绩
printf("请输入3位同学的成绩:\n");
for (int i = 0; i < N; i++) {
scanf("%d", &scores[i]);
}
// 对成绩进行排序
sort(scores, N);
// 输出排序后的成绩
printf("成绩从高到低排序如下:\n");
for (int i = 0; i < N; i++) {
printf("%d ", scores[i]);
}
printf("\n");
return 0;
}
void sort(int arr[], int n)
{
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (arr[i] < arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
```
在上述代码中,我们首先定义了一个常量 `N` 表示学生数,然后定义了一个 `sort()` 函数来对成绩进行排序。在 `main()` 函数中,我们首先从键盘输入成绩,然后调用 `sort()` 函数对成绩进行排序,最后输出排序后的成绩。
在 `sort()` 函数中,我们使用了双重循环来进行冒泡排序。在每一轮排序中,我们比较相邻的两个成绩大小,如果前一个成绩比后一个成绩小,则交换它们的位置。经过 `n-1` 轮排序,就可以将成绩从高到低排好序了。