要求使用结构体保存学生数

要求使用结构体保存学生数据
有5个学生,每个学生的数据包括学号、姓名、三门课的成绩, 从键盘输入5个学生数据,并打印输出。 要求用一个input函数输入5个学生数据; 用一个print函数打印一个学生数据; 并在主函数中调用input和print函数。

用二维数组 float score[5][3]表示5个学生3门课成绩。

//有5个学生,每个学生的数据包括学号、姓名、三门课的成绩, 从键盘输入5个学生数据,并打印输出。 要求用一个input函数输入5个学生数据; 用一个print函数打印一个学生数据; 并在主函数中调用input和print函数。
#include <stdio.h>

void input(float score[5][3])
{
    int i,j;
    for(i=0;i<5;i++)
      for(j=0;j<3;j++)
        scanf("%f",&score[i][j]);
}
void print(float s[3])
{
    printf("%.1f,%.1f,%.1f\n",s[0],s[1],s[2]);
}
int main()
{
    float score[5][3];
    int i;
    input(score);
    for(i=0;i<5;i++)
        print(score[i]);
    return 0;
}

#include <stdio.h>
struct Student
{
    int id;
    char name[30];
    int score[3]; //
};

void input(struct Student stu[],int n)
{
    int i;
    for (i=0;i<n;i++)
    {
        printf("请输入学生%d的学号:",i+1);
        scanf("%d",&stu[i].id);
        printf("请输入学生%d的姓名:",i+1);
        scanf("%s",stu[i].name);
        printf("请输入学生%d的三门课成绩:");
        scanf("%d %d %d",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
    }
}

void print(struct Student stu[],int n)
{
    int i;
    for (i=0;i<n;i++)
    {
        printf("学生%d的学号:",i+1);
        printf("%d\n",stu[i].id);
        printf("学生%d的姓名:",i+1);
        printf("%s\n",stu[i].name);
        printf("学生%d的三门课成绩:");
        printf("%d %d %d\n",stu[i].score[0],stu[i].score[1],stu[i].score[2]);
    }
}

int main()
{
    struct Student stu[5];
    input(stu,5);
    print(stu,5);
    return 0;
}

供参考:

#include<iostream>
#include<string>
constexpr auto N = 5;  //5个学生;
constexpr auto M = 3;  //3门课程;
using namespace std;

typedef struct student {
    string   num; //学号
    string   name;//姓名
    float    score[M];//课目成绩
    float    avg; //每个学生M门课目平均分
}Student;
void Input_info(Student* stu);//手工信息录入,平均分/学生
void print(Student* stu);    //输出所有信息
int main()
{
    Student stu[N];
    Input_info(stu);
    print(stu);
    return 0;
}

void Input_info(Student* stu)
{
    int i, j;
    cout << "输入" << N << "位学生学号、姓名及" << M << "门课目成绩" << endl;
    for (i = 0; i < N; i++) {
        cin >> stu[i].num >> stu[i].name;
        stu[i].avg = 0;
        for (j = 0; j < M; j++) {
            cin >> stu[i].score[j];
            stu[i].avg += stu[i].score[j];
        }
        stu[i].avg /= M;
    }
}
void print(Student* stu)
{
    int i, j;
    cout << endl << "学号\t" << "姓名\t";
    for (j = 0; j < M; j++)
        cout << "课目" << j + 1 << "\t";
    cout<< "平均分" << endl << endl;
    for (i = 0; i < N; i++) {
        cout << stu[i].num << "\t" << stu[i].name;
        for (j = 0; j < M; j++)
            cout << "\t" << stu[i].score[j];
        cout << "\t" << stu[i].avg << endl;
    }
}