从键盘输入十个学生的成绩,计算平均成绩,并按平均成绩排序写出代码
时间: 2023-12-27 22:02:45 浏览: 116
好的,以下是可以实现你的要求的 Python 代码:
```python
# 输入十个学生成绩
scores = []
for i in range(10):
score = float(input("请输入第%d个学生的成绩:" % (i+1)))
scores.append(score)
# 计算平均成绩
avg_score = sum(scores) / len(scores)
print("平均成绩为:%.2f" % avg_score)
# 按平均成绩排序
scores.sort(reverse=True)
# 输出排序后的成绩
print("成绩从高到低排序为:")
for score in scores:
print(score)
```
代码中,我们首先通过 `input` 函数从键盘输入了十个学生成绩,然后通过 `sum` 函数和 `len` 函数计算了平均成绩,并按照平均成绩排序,最后输出排序后的成绩。如果你有其他问题或需求,可以继续提出。
相关问题
从键盘输入十个学生的成绩,计算平均成绩,并按平均成绩排序写出c语言代码
好的,以下是可以实现你的要求的 C 语言代码:
```c
#include <stdio.h>
int main() {
float scores[10];
float sum = 0.0, avg_score;
int i, j;
// 输入十个学生成绩
for (i = 0; i < 10; i++) {
printf("请输入第%d个学生的成绩:", i+1);
scanf("%f", &scores[i]);
sum += scores[i];
}
// 计算平均成绩
avg_score = sum / 10.0;
printf("平均成绩为:%.2f\n", avg_score);
// 按平均成绩排序
for (i = 0; i < 9; i++) {
for (j = 0; j < 9-i; j++) {
if (scores[j] < scores[j+1]) {
float temp = scores[j];
scores[j] = scores[j+1];
scores[j+1] = temp;
}
}
}
// 输出排序后的成绩
printf("成绩从高到低排序为:\n");
for (i = 0; i < 10; i++) {
printf("%.2f\n", scores[i]);
}
return 0;
}
```
代码中,我们首先定义了一个长度为 10 的浮点型数组 `scores`,然后通过 `for` 循环从键盘输入了十个学生成绩,同时累加成绩求和。接着计算平均成绩,再通过两层 `for` 循环实现冒泡排序,最后输出排序后的成绩。如果你有其他问题或需求,可以继续提出。
有5个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号,姓名,3门课成绩),计算出每个学生的平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。然后按照平均成绩的大小进行排序处理,将排序好的学生数据存放到一个新文件中。用C语言怎么做
这是一个典型的文件读写和排序问题,可以采用以下步骤:
1. 定义一个结构体表示学生信息,包括学号、姓名、三门课成绩和平均成绩。
2. 从键盘输入每个学生的数据,计算平均成绩,并将所有学生数据存放在一个数组中。
3. 将数组中的学生信息按照平均成绩排序,可以采用快速排序等算法。
4. 将排序后的学生数据逐个写入磁盘文件stud中。
下面是一个C语言实现的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 5
typedef struct student {
int id;
char name[20];
int grades[3];
float avg_grade;
} student;
int compare_students(const void *s1, const void *s2) {
student *stu1 = (student *)s1;
student *stu2 = (student *)s2;
if (stu1->avg_grade < stu2->avg_grade) return 1;
if (stu1->avg_grade > stu2->avg_grade) return -1;
return 0;
}
int main() {
student students[MAX_STUDENTS];
char filename[] = "stud";
FILE *file;
int i, j;
float sum;
// 从键盘输入学生数据
for (i = 0; i < MAX_STUDENTS; i++) {
printf("Enter student %d's id, name, and three grades: ", i + 1);
scanf("%d %s %d %d %d", &students[i].id, students[i].name,
&students[i].grades[0], &students[i].grades[1], &students[i].grades[2]);
sum = 0;
for (j = 0; j < 3; j++) {
sum += students[i].grades[j];
}
students[i].avg_grade = sum / 3.0;
}
// 按照平均成绩排序
qsort(students, MAX_STUDENTS, sizeof(student), compare_students);
// 将学生数据写入磁盘文件stud中
file = fopen(filename, "w");
if (!file) {
printf("Failed to open file %s\n", filename);
return -1;
}
for (i = 0; i < MAX_STUDENTS; i++) {
fprintf(file, "%d %s %d %d %d %f\n", students[i].id, students[i].name,
students[i].grades[0], students[i].grades[1], students[i].grades[2], students[i].avg_grade);
}
fclose(file);
return 0;
}
```
这段代码实现了从键盘输入学生数据,计算平均成绩,按照平均成绩排序并将排序后的学生数据写入磁盘文件stud中。如果您想要更深入地了解C语言的文件读写和排序,可以参考相关文档或书籍。
阅读全文