增加一些学生,学生的相关信息可通过键盘输入,给结构体变量赋值让每位学生有出生年月日的信息

增加一些学生,学生的相关信息可通过键盘输入,给结构体变量赋值让每位学生有出生年月日的信息,性别数据改为男或女,并输出成绩最高的学生的各项数据。这个程序该怎么改?能帮写一个新的吗?我这个错误好多💔

img

把获取出生日期,以及打印性别和出生日期那里修改下即可,修改如下:


#include <iostream>
using namespace std;
const int N=3;
struct Birthday{
    int year;
    int month;
    int day;
};

struct student{
    int num;
    char name[20];
    char sex;
    int score;
    Birthday birthday;
}stu[N];



void input(){
    
    cout<<"Input the num,name,sex,score and birthday:\n";
    for(int i=0;i<N;i++){
        
        cout<<"\ninput student "<<i+1<<":"<<endl;
        cout<<"name:";
        cin>>stu[i].name;
        
        
        cout<<"num:";
        cin>>stu[i].num;
        
        
        cout<<"sex(female-f, male-m): ";
        cin>>stu[i].sex;
        
        cout<<"score:";
        cin>>stu[i].score;
        
        cout<<"birthday(year month day): ";
        cin>>stu[i].birthday.year>>stu[i].birthday.month>>stu[i].birthday.day;
    }
}

void find(){
    int k=0;
    int x=stu[0].score;
    for(int i=1;i<N;i++){
        if(stu[i].score>x){
            x=stu[i].score;
            k=i;
        }
    }
    
    cout<<"\n输出成绩最高的人的各项数据:"<<endl;
    cout<<"学号:"<<stu[k].num<<endl;
    cout<<"姓名:"<<stu[k].name<<endl;
    cout<<"性别:";
    if(stu[k].sex=='m'){
        cout<<"男"<<endl;
    }else{
        cout<<"女"<<endl;
    }
    cout<<"出生日期:"<<stu[k].birthday.year<<" "<<stu[k].birthday.month<<" "<<stu[k].birthday.day<<endl;
        
}

int main(void){
    
    input();
    find();
    
    return 0;
}


img