在主函数中输入5个学生的成绩用一个数组保存,然后调用函数求平均成绩,并在主函数中输出平均成绩。
时间: 2023-05-01 14:03:39 浏览: 143
题意:在一个主函数中输入5个学生的成绩,然后调用函数求平均成绩,并在主函数中输出平均成绩。
解析:
题目要求我们在主函数中输入5个学生的成绩并保存在一个数组中,然后在调用函数求平均成绩后,再将平均成绩在主函数中输出。
我们可以这样实现代码:
```python
def avg_score(scores):
sum_score = 0
for score in scores:
sum_score += score
return sum_score/len(scores)
#在主函数中输入成绩并求平均成绩
scores = []
for i in range(5):
score = float(input("请输入第{}个学生的成绩:".format(i+1)))
scores.append(score)
average_score = avg_score(scores)
#输出平均成绩
print("五个学生的平均成绩为:",average_score)
```
这样就完成了题目的要求。其中,我们定义了一个求平均值的函数avg_score,用于求传入数组中所有成绩的平均值;然后在主函数中,使用一个for循环,输入5个学生的成绩并保存在scores数组中;最后调用avg_score函数,求scores数组中所有成绩的平均值并保存在average_score变量中,将结果输出即可。
相关问题
考试结束后老师登记两个学生的成绩,学生的基本信息包括姓名(chName)、期中成绩(iMiddle)、期末成绩(iFinal)和平均成绩(fAve),请编写程序存储所输入的成绩,在程序中编写一个函数比较两个学生的成绩,将平均分数较高的同学的成绩单输出。 步骤 1) 在主函数中定义学生信息结构体struct student。 2) 声明用户自定义函数。 3) 使用学生信息结构体定义相关变量stu1, stu2,也可以考虑使用数组保存学生信息。 4) 在主函数中输入数据并且调用函数。 5) 在主函数中调用自定义函数,以参数的形式输入学生信息,打印平均成绩。
我可以回答这个问题。以下是程序的代码:
#include <stdio.h>
struct student {
char chName[20];
int iMiddle;
int iFinal;
float fAve;
};
void compare(struct student stu1, struct student stu2) {
if (stu1.fAve > stu2.fAve) {
printf("%s的成绩单:\n期中成绩:%d\n期末成绩:%d\n平均成绩:%.2f\n", stu1.chName, stu1.iMiddle, stu1.iFinal, stu1.fAve);
} else {
printf("%s的成绩单:\n期中成绩:%d\n期末成绩:%d\n平均成绩:%.2f\n", stu2.chName, stu2.iMiddle, stu2.iFinal, stu2.fAve);
}
}
int main() {
struct student stu1, stu2;
printf("请输入第一个学生的信息:\n");
printf("姓名:");
scanf("%s", stu1.chName);
printf("期中成绩:");
scanf("%d", &stu1.iMiddle);
printf("期末成绩:");
scanf("%d", &stu1.iFinal);
stu1.fAve = (stu1.iMiddle + stu1.iFinal) / 2.;
printf("请输入第二个学生的信息:\n");
printf("姓名:");
scanf("%s", stu2.chName);
printf("期中成绩:");
scanf("%d", &stu2.iMiddle);
printf("期末成绩:");
scanf("%d", &stu2.iFinal);
stu2.fAve = (stu2.iMiddle + stu2.iFinal) / 2.;
compare(stu1, stu2);
return ;
}
综合使用C语言中的顺序结构、选择结构、循环结构、函数和数组,设计主函数,在主函数中正确输入或调用每个学生的名字、学号及英语、数学、计算机成绩,输入时有必要的提示信息,设计子函数求每个学生的平均成绩和每门课的平均成绩、最高以及最低成绩并保存在数组中
好的,这是一个比较复杂的问题,需要分步解决。首先,我们需要定义一个结构体,用于存储每个学生的信息,包括名字、学号以及三门课程的成绩:
```c
struct student {
char name[20];
int id;
int english;
int math;
int computer;
};
```
然后,我们需要在主函数中定义一个数组,用于存储所有学生的信息:
```c
struct student students[100];
int num_students = 0;
```
接下来,我们需要编写一个函数,用于输入每个学生的信息:
```c
void input_students() {
printf("请输入学生人数:");
scanf("%d", &num_students);
for (int i = 0; i < num_students; i++) {
printf("请输入第%d个学生的姓名:", i + 1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的学号:", i + 1);
scanf("%d", &students[i].id);
printf("请输入第%d个学生的英语成绩:", i + 1);
scanf("%d", &students[i].english);
printf("请输入第%d个学生的数学成绩:", i + 1);
scanf("%d", &students[i].math);
printf("请输入第%d个学生的计算机成绩:", i + 1);
scanf("%d", &students[i].computer);
}
}
```
这个函数会先询问学生人数,然后逐个输入每个学生的信息。接下来,我们需要编写一个函数,用于计算每个学生的平均成绩:
```c
void calculate_student_average() {
for (int i = 0; i < num_students; i++) {
students[i].average = (students[i].english + students[i].math + students[i].computer) / 3.0;
}
}
```
这个函数会遍历每个学生,计算他们的平均成绩,并将结果保存在结构体中。然后,我们需要编写一个函数,用于计算每门课程的平均成绩、最高成绩和最低成绩:
```c
void calculate_course_statistics() {
int english_sum = 0, math_sum = 0, computer_sum = 0;
int english_max = 0, math_max = 0, computer_max = 0;
int english_min = 100, math_min = 100, computer_min = 100;
for (int i = 0; i < num_students; i++) {
english_sum += students[i].english;
math_sum += students[i].math;
computer_sum += students[i].computer;
if (students[i].english > english_max) {
english_max = students[i].english;
}
if (students[i].math > math_max) {
math_max = students[i].math;
}
if (students[i].computer > computer_max) {
computer_max = students[i].computer;
}
if (students[i].english < english_min) {
english_min = students[i].english;
}
if (students[i].math < math_min) {
math_min = students[i].math;
}
if (students[i].computer < computer_min) {
computer_min = students[i].computer;
}
}
english_average = english_sum / (double)num_students;
math_average = math_sum / (double)num_students;
computer_average = computer_sum / (double)num_students;
}
```
这个函数会遍历每个学生,累加每门课程的成绩,并记录每门课程的最高和最低成绩。然后,它会计算每门课程的平均成绩,并将结果保存在全局变量中。
最后,在主函数中,我们需要依次调用这些函数,完成所有的计算和输入输出:
```c
int main() {
input_students();
calculate_student_average();
calculate_course_statistics();
// 输出每个学生的信息和平均成绩
for (int i = 0; i < num_students; i++) {
printf("姓名:%s,学号:%d,英语:%d,数学:%d,计算机:%d,平均成绩:%.2f\n",
students[i].name, students[i].id, students[i].english, students[i].math, students[i].computer, students[i].average);
}
// 输出每门课程的平均成绩、最高成绩和最低成绩
printf("英语平均成绩:%.2f,最高成绩:%d,最低成绩:%d\n", english_average, english_max, english_min);
printf("数学平均成绩:%.2f,最高成绩:%d,最低成绩:%d\n", math_average, math_max, math_min);
printf("计算机平均成绩:%.2f,最高成绩:%d,最低成绩:%d\n", computer_average, computer_max, computer_min);
return 0;
}
```
这个程序可以实现对每个学生的信息进行输入,并计算每个学生的平均成绩,以及每门课程的平均成绩、最高成绩和最低成绩。
阅读全文