编写一个函数print,打印一个学生的成绩数组

编写一个函数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;
}