编写一个函数printScore,打印一个学生的信息。学生信息包括: 学号、姓名和成绩 (包括3门课程的成绩,可用一个数组表示);在main函数中输入N(5)个学生的信息,调用printScore函数输出信息。
时间: 2023-03-14 15:12:04 浏览: 98
答:#include<stdio.h>struct student {
int no;
char name[20];
int score[3];
};void printScore(struct student stu){
printf("学号:%d\n", stu.no);
printf("姓名:%s\n", stu.name);
printf("成绩:");
for(int i=0;i<3;i++){
printf("%d",stu.score[i]);
if(i<2)
printf(",");
}
printf("\n");
}int main(){
int N;
scanf("%d", &N);
struct student stu[N];
for(int i=0;i<N;i++){
scanf("%d %s %d %d %d", &stu[i].no, stu[i].name, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);
}
for(int i=0;i<N;i++){
printScore(stu[i]);
}
return 0;
}
相关问题
有5个学生,每个学生的数据包括学号、姓名、3门课程的成绩。编写input函数用来输入5个学生的数据记录;编写print函数用来输出每位学生的学号、姓名、3门课程成绩及平均分;编写max_score函数用来寻找平均分最高的学生信息。
好的,我可以为您提供帮助。下面是一个示例代码,用来实现您的要求:
```python
# 定义一个字典,用来保存每个学生的数据记录
students = {}
# 定义一个函数,用来输入5个学生的数据记录
def input_data():
for i in range(5):
# 输入学号、姓名和3门课程的成绩
sid = input("请输入学号:")
name = input("请输入姓名:")
score1 = int(input("请输入第1门课程的成绩:"))
score2 = int(input("请输入第2门课程的成绩:"))
score3 = int(input("请输入第3门课程的成绩:"))
# 保存学生数据记录到字典中
students[sid] = {"name":name, "scores":[score1, score2, score3]}
# 定义一个函数,用来输出每位学生的学号、姓名、3门课程成绩及平均分
def print_data():
for sid in students:
# 获取学生姓名和3门课程成绩
name = students[sid]["name"]
scores = students[sid]["scores"]
# 计算平均分
avg_score = sum(scores) / len(scores)
# 输出学生数据记录
print("学号:{},姓名:{},课程1成绩:{},课程2成绩:{},课程3成绩:{},平均分:{}".format(sid, name, scores[0], scores[1], scores[2], avg_score))
# 定义一个函数,用来寻找平均分最高的学生信息
def max_score():
max_avg_score = 0
max_sid = ""
for sid in students:
# 获取学生姓名和3门课程成绩
name = students[sid]["name"]
scores = students[sid]["scores"]
# 计算平均分
avg_score = sum(scores) / len(scores)
# 如果平均分比当前最高分更高,则更新最高分和对应的学生编号
if avg_score > max_avg_score:
max_avg_score = avg_score
max_sid = sid
# 输出平均分最高的学生信息
print("平均分最高的学生是:学号:{},姓名:{},平均分:{}".format(max_sid, students[max_sid]["name"], max_avg_score))
# 调用函数,执行程序
input_data()
print_data()
max_score()
```
您可以直接复制上述代码并运行,也可以根据自己的需求进行修改。希望对您有所帮助!
编写一个输入函数input和一个打印函数print,输入和打印一组学生信息,每个学生信息包括学号num、name和3门课程成绩sore[3]。用主函数调用输入函数和输出函数输入和输出这些学生信息
你可以使用以下代码来实现输入函数input和打印函数print以及主函数main:
```c
#include <stdio.h>
#define MAX_STUDENTS 100
#define MAX_NAME_LENGTH 50
struct student {
long num;
char name[MAX_NAME_LENGTH];
float score[3];
};
int input(struct student *students, int n) {
int i;
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的学号:", i+1);
scanf("%ld", &students[i].num);
printf("请输入第%d个学生的姓名:", i+1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的3门课程成绩:", i+1);
scanf("%f %f %f", &students[i].score[0], &students[i].score[1], &students[i].score[2]);
}
return n;
}
void print(struct student *students, int n) {
int i, j;
for (i = 0; i < n; i++) {
printf("学生%d:\n", i+1);
printf("学号:%ld\n", students[i].num);
printf("姓名:%s\n", students[i].name);
printf("成绩:");
for (j = 0; j < 3; j++) {
printf("%.2f ", students[i].score[j]);
}
printf("\n");
}
}
int main() {
struct student students[MAX_STUDENTS];
int n;
printf("请输入学生的数量:");
scanf("%d", &n);
if (n > MAX_STUDENTS) {
printf("学生数量超过最大限制!\n");
return 1;
}
input(students, n);
print(students, n);
return 0;
}
```
这段代码首先定义了一个结构体`student`来表示学生信息,包括学号`num`、姓名`name`和3门课程成绩`sore[3]`。
然后定义了输入函数`input`,它接受一个指向`student`结构体数组的指针和学生数量作为参数,通过循环提示用户输入每个学生的信息,并将输入的值保存到相应的结构体中。
接下来定义了打印函数`print`,它接受一个指向`student`结构体数组的指针和学生数量作为参数,通过循环打印每个学生的信息。
最后在主函数`main`中,首先要求用户输入学生的数量,并检查是否超过最大限制。然后调用输入函数`input`来输入学生信息,再调用打印函数`print`来输出学生信息。
注意:这里假设学生数量不会超过最大限制,并且姓名长度不超过定义的最大长度。如果需要更严格的输入检查,可以在代码中进行相应的修改。
阅读全文