c语言 请问要怎么改呀

img

img

img

img

img

修改如下,供参考:

#include <stdio.h>
#include <stdlib.h>
struct Person {
    char arr[20];
    char ch;
    unsigned int age;
};
void personInput(struct Person* pPerson)
{
    printf("请输入姓名:");
    scanf("%s", pPerson->arr);//scanf("%s", &pPerson->arr[20]);
    getchar();
    printf("请输入性别:");
    scanf("%c", &pPerson->ch);
    printf("请输入年龄:");
    scanf("%u", &pPerson->age);
}
void personOutput(struct Person*  pPerson)
{
    printf("Person:%s的个人信息为:\n", pPerson->arr);
    printf("\t Name:%s\n", pPerson->arr);
    printf("\t Sex :%d\n", pPerson->ch);
    printf("\t Age :%u\n", pPerson->age);
}
struct Grade {
    int math;
    int english;
    int language;
    float average;//int average;
};
void gradeInput(struct Grade* pGrade)
{
    printf("请输入数学成绩:");
    scanf("%d", &pGrade->math);
    getchar();
    printf("请输入英语成绩:");
    scanf("%d", &pGrade->english);
    printf("请输入语文成绩:");
    scanf("%d", &pGrade->language);
    pGrade->average = (pGrade->math + pGrade->english + pGrade->language) / 3.0;
}
void gradeOutput(struct Grade* pGrade)
{
    printf("\t数学:%d\n", pGrade->math);
    printf("\t英语:%d\n", pGrade->english);
    printf("\t语文:%d\n", pGrade->language);
    printf("\t平均:%.2f\n",pGrade->average);
    printf("\n");
}
struct Student {
    struct Person person;
    long  id;
    struct Grade grade;
};
void studentInput(struct Student* pStudent)
{
    personInput(&pStudent->person);//personOutput(&pStudent->person);
    printf("请输入学号:");
    scanf("%ld", &pStudent->id);
    gradeInput(&pStudent->grade);
}
void studentOutput(struct Student* pStudent)
{
    personOutput(&pStudent->person);
    printf("\t学号:%ld\n", pStudent->id);
    gradeOutput(&pStudent->grade);
}
int main()
{
    struct Student stu1, stu2;
    void studentInput(struct Student* pStudent);
    void studentOutput(struct Student* pStudent);
    studentInput(&stu1);
    studentInput(&stu2);

    if (stu1.person.age > stu2.person.age)//if (stu1.grade.average > stu2.grade.average)
        printf("%s 比 %s 年龄大\n",stu1.person.arr,stu2.person.arr);
    else
        printf("%s 比 %s 年龄大\n",stu2.person.arr,stu1.person.arr);
    studentOutput(&stu1);
    studentOutput(&stu2);
    return 0;
}