编写一个函数print,打印一个学生的成绩数组,该组中有五个学生的数据记录,每个记录包含num,name,score[3],编写另一函数input用来输入5个学生的数据记录。在主函数中用input函数输入这些记录,用print函数输出这些记录。
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT 5
struct student {
int num;
char name[20];
int score[3];
} stu[MAX_STUDENT];
void input() {
int i;
for (i = 0; i < MAX_STUDENT; i++) {
printf("请输入第%d个学生的学号,姓名和三个科目的成绩(请用空格分隔):\n", i+1);
scanf("%d %s %d %d %d", &stu[i].num, stu[i].name, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);
}
}
void print() {
int i, j;
for (i = 0; i < MAX_STUDENT; i++) {
printf("学号:%d 姓名:%s 成绩:", stu[i].num, stu[i].name);
for (j = 0; j < 3; j++) {
printf("%d ", stu[i].score[j]);
}
printf("\n");
}
}
int main() {
input();
print();
return 0;
}
基于new bing的编写:
#include <stdio.h>
// 定义结构体
typedef struct {
int num;
char name[20];
int score[3];
} Student;
void input(Student *students, int n) {
for (int i = 0; i < n; i++) {
printf("请输入第 %d 个学生的信息:\n", i + 1);
printf("num: ");
scanf("%d", &students[i].num);
printf("name: ");
scanf("%s", students[i].name);
printf("score[1]: ");
scanf("%d", &students[i].score[0]);
printf("score[2]: ");
scanf("%d", &students[i].score[1]);
printf("score[3]: ");
scanf("%d", &students[i].score[2]);
}
}
void print(const Student *students, int n) {
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\n");
for (int i = 0; i < n; i++) {
printf("%d\t%s\t%d\t%d\t%d\n",
students[i].num, students[i].name,
students[i].score[0], students[i].score[1], students[i].score[2]);
}
}
int main() {
// 定义学生数组
Student students[5];
// 输入学生信息
input(students, 5);
// 输出学生信息
print(students, 5);
return 0;
}
在主函数中,声明了一个 Student 结构体数组 students,用来存储5个学生的数据记录。然后,调用 input 函数来输入这些记录,再调用 print 函数来输出这些记录。
在 input 函数中,使用循环逐个输入每个学生的学号、姓名和成绩,通过结构体数组的索引来访问并存储数据。
在 print 函数中,同样使用循环逐个输出每个学生的学号、姓名和成绩。
最后,在主函数中调用 input 函数和 print 函数,实现输入和输出学生数据记录的功能。
注意:在输入学生姓名时,使用 %s 格式化字符来接收字符串输入。
#include <stdio.h>
struct Student {
int num;
char name[20];
int score[3];
};
void input(struct Student students[]) {
printf("请输入5个学生的数据记录:\n");
for (int i = 0; i < 5; i++) {
printf("学生 %d:\n", i + 1);
printf("学号:");
scanf("%d", &students[i].num);
printf("姓名:");
scanf("%s", students[i].name);
printf("成绩:");
for (int j = 0; j < 3; j++) {
scanf("%d", &students[i].score[j]);
}
}
}
void print(struct Student students[]) {
printf("\n学生的数据记录如下:\n");
for (int i = 0; i < 5; i++) {
printf("学生 %d:\n", i + 1);
printf("学号:%d\n", students[i].num);
printf("姓名:%s\n", students[i].name);
printf("成绩:%d %d %d\n", students[i].score[0], students[i].score[1], students[i].score[2]);
printf("\n");
}
}
int main() {
struct Student students[5];
input(students);
print(students);
return 0;
}