调用input函数从键盘读入不超过10个学生的成绩,成绩低于0分或者超过100分重新读入,读满10个或者遇到9999结束;调用average函数求一组数的平均值;调用sort函数将这组数按照降序排序。
时间: 2023-04-20 12:03:39 浏览: 414
可以使用以下代码实现:
scores = []
count =
while count < 10:
score = input("请输入学生的成绩:")
if score == "9999":
break
score = int(score)
if score < or score > 100:
print("成绩应在-100之间,请重新输入")
continue
scores.append(score)
count += 1
def average(scores):
return sum(scores) / len(scores)
def sort(scores):
return sorted(scores, reverse=True)
print("平均成绩为:", average(scores))
print("成绩降序排列为:", sort(scores))
相关问题
有10个学生,每个学生的数据包括学号,姓名,及三门课成绩,总成绩和平均成绩,从键盘输入10个学生的数据(包括学号,姓名及3门课成绩),要求打印出每位学生的学号,姓名,三门课的成绩,总成绩和平均成绩,最后再打印出3门课的总平均成绩以及最高分的学生的数据(包括姓名和总成绩)。 内容要求利用函数形式完成以下5个内容: (a)根据学生信息定义一个结构体类型,在说明一个该结构体类型的数组; (b)用input函数从键盘上输入10个学生的数据; (c)用average函数求出每个学生总成绩、平均成绩和所有学生的总平均成绩; (d)用maximum函数找出最高分的学生的数据; (e)在主函数中输出每位学生的学号、姓名、三门课的成绩、总成绩和平均成绩以及总平均分和最高分学生的数据。c语言
以下是C语言实现:
```c
#include <stdio.h>
#include <string.h>
#define NUM_STUDENTS 10 // 学生数量
// 学生信息结构体
struct Student {
char id[10]; // 学号
char name[20]; // 姓名
int score1, score2, score3; // 三门课成绩
int totalScore; // 总成绩
float averageScore; // 平均成绩
};
// 输入函数
void input(struct Student students[]) {
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("学号:");
scanf("%s", students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("三门课成绩:");
scanf("%d%d%d", &students[i].score1, &students[i].score2, &students[i].score3);
}
}
// 平均成绩函数
void average(struct Student students[], float *averageScorePtr, struct Student *maxScoreStudentPtr) {
*averageScorePtr = 0; // 所有学生的平均成绩
int maxScore = -1; // 最高分数
for (int i = 0; i < NUM_STUDENTS; i++) {
// 计算每个学生的总成绩和平均成绩
students[i].totalScore = students[i].score1 + students[i].score2 + students[i].score3;
students[i].averageScore = students[i].totalScore / 3.0;
// 计算所有学生的总平均成绩
*averageScorePtr += students[i].averageScore;
// 找出最高分数的学生
if (students[i].totalScore > maxScore) {
maxScore = students[i].totalScore;
*maxScoreStudentPtr = students[i];
}
}
*averageScorePtr /= NUM_STUDENTS; // 计算所有学生的平均成绩
}
// 最高分数函数
void maximum(struct Student students[], struct Student *maxScoreStudentPtr) {
int maxScore = -1; // 最高分数
for (int i = 0; i < NUM_STUDENTS; i++) {
if (students[i].totalScore > maxScore) {
maxScore = students[i].totalScore;
*maxScoreStudentPtr = students[i];
}
}
}
// 输出函数
void output(struct Student students[], float averageScore, struct Student maxScoreStudent) {
printf("学号\t姓名\t课程1\t课程2\t课程3\t总成绩\t平均成绩\n");
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n", students[i].id, students[i].name, students[i].score1, students[i].score2, students[i].score3, students[i].totalScore, students[i].averageScore);
}
printf("三门课总平均成绩:%.2f\n", averageScore);
printf("最高分学生:姓名:%s,总成绩:%d\n", maxScoreStudent.name, maxScoreStudent.totalScore);
}
int main() {
struct Student students[NUM_STUDENTS]; // 学生信息数组
float averageScore; // 所有学生的平均成绩
struct Student maxScoreStudent; // 最高分数的学生
input(students); // 输入学生信息
average(students, &averageScore, &maxScoreStudent); // 计算平均成绩和最高分数
output(students, averageScore, maxScoreStudent); // 输出学生信息和平均成绩和最高分数
return 0;
}
```
在该实现中,我们首先定义了一个名为`Student`的结构体类型,包括学号、姓名、三门课成绩、总成绩和平均成绩等信息。然后定义了一个包含`NUM_STUDENTS`个`Student`结构体类型的数组`students`,用于存储10个学生的信息。
我们接着定义了一个名为`input`的函数,用于从键盘读入10个学生的信息,包括学号、姓名及三门课成绩等。函数参数为`students`,即学生信息数组。
接下来是名为`average`的函数,它的功能是计算每个学生的总成绩、平均成绩和所有学生的总平均成绩,以及找出最高分数的学生的数据。函数参数包括`students`、所有学生的平均成绩的指针和最高分数的学生的指针。
然后我们定义了一个名为`maximum`的函数,用于找出最高分数的学生的数据。函数参数包括`students`和最高分数的学生的指针。
最后,我们定义了一个名为`output`的函数,用于输出每位学生的学号、姓名、三门课的成绩、总成绩和平均成绩,以及总平均分和最高分学生的数据。函数参数包括`students`、所有学生的平均成绩和最高分数的学生。
在`main`函数中,我们先定义了一个`students`数组、一个所有学生的平均成绩和一个最高分数的学生。然后依次调用`input`、`average`和`output`函数,完成输入学生信息、计算平均成绩和最高分数,以及输出学生信息和平均成绩和最高分数。
求矩阵的所有不靠边元素之和,矩阵行的值m从键盘读入(2<=m<=10),调用自定义函数input实现矩阵元素从键盘输入,调用sum函数实现求和。(只考虑float型,且不需考虑求和的结果可能超出flo
at型范围)
好的,以下是代码实现:
```python
def input(m):
matrix = []
for i in range(m):
row = []
for j in range(m):
row.append(float(input("请输入第{}行第{}列的元素:".format(i+1, j+1))))
matrix.append(row)
return matrix
def sum(matrix):
total =
for i in range(1, len(matrix)-1):
for j in range(1, len(matrix)-1):
total += matrix[i][j]
return total
m = int(input("请输入矩阵的行数:"))
matrix = input(m)
total = sum(matrix)
print("所有不靠边元素之和为:", total)
```
代码解释:
1. `input(m)` 函数用于从键盘输入矩阵的元素,返回一个二维列表。
2. `sum(matrix)` 函数用于计算矩阵所有不靠边元素之和,返回一个浮点数。
3. 主程序中先从键盘读入矩阵的行数,然后调用 `input(m)` 函数输入矩阵元素,最后调用 `sum(matrix)` 函数计算不靠边元素之和并输出。
阅读全文
相关推荐












