现有有n个学生的数据记录,每个记录包括学号、姓名、三科成绩。 编写一个函数input,用来输入一个学生的数据记录。 编写一个函数print,打印一个学生的数据记录。 在主函数调用这两个函数,读取n条记录输入,再按要求输出。 n<100
时间: 2023-08-03 10:00:57 浏览: 147
### 回答1:
下面是用 C 语言实现这个需求的代码示例:
```
#include <stdio.h>
struct student {
int id;
char name[20];
int grade1, grade2, grade3;
};
void input(struct student *s) {
printf("请输入学号:");
scanf("%d", &s->id);
printf("请输入姓名:");
scanf("%s", s->name);
printf("请输入三科成绩:");
scanf("%d%d%d", &s->grade1, &s->grade2, &s->grade3);
}
void print(struct student s) {
printf("学号:%d\n", s.id);
printf("姓名:%s\n", s.name);
printf("三科成绩:%d %d %d\n", s.grade1, s.grade2, s.grade3);
}
int main() {
int n, i;
struct student s[100];
printf("请输入学生人数:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
input(&s[i]);
}
for (i = 0; i < n; i++) {
print(s[i]);
}
return 0;
}
```
### 回答2:
下面是一个按要求输出的简单示例程序:
```python
class Student:
def __init__(self, id, name, score1, score2, score3):
self.id = id
self.name = name
self.score1 = score1
self.score2 = score2
self.score3 = score3
def input_student():
id = input("请输入学号:")
name = input("请输入姓名:")
score1 = float(input("请输入第一科成绩:"))
score2 = float(input("请输入第二科成绩:"))
score3 = float(input("请输入第三科成绩:"))
return Student(id, name, score1, score2, score3)
def print_student(student):
print("学号:{}".format(student.id))
print("姓名:{}".format(student.name))
print("第一科成绩:{}".format(student.score1))
print("第二科成绩:{}".format(student.score2))
print("第三科成绩:{}".format(student.score3))
def main():
n = int(input("请输入学生数量:"))
students = []
for i in range(n):
student = input_student()
students.append(student)
for i in range(n):
print_student(students[i])
if __name__ == "__main__":
main()
```
在主函数中,首先读取学生数量n,然后通过循环调用input_student函数n次,输入n个学生的数据记录,并将其存储到一个列表中。接着,再通过循环调用print_student函数n次,依次打印每个学生的数据记录。
注意,由于"print"是Python中的内置函数,为了避免和内置函数冲突,我将print函数改为了print_student。