问题:设定一名学生的基本信息包括学号,姓名,数学成绩,英语成绩。现要求你用结构体构 建一个学生的信息库,信息由键盘输入,至少能同时输入五个人的信息。输出学生信息。为什么打印不出来啊,求解答

typedef struct Stu
{
char name[20];
unsigned long long ID;
int Math;
int English;
int pj;//pj为数学和英语地平均值
}Stu;
int main()
{
int i;
Stu student[5];
printf("请输入学生信息:");
for (i = 0; i < 5; i++)
{
scanf_s("%s %llu %d %d", &student[i].name, &student[i].ID,&student[i].Math,&student[i].English);
student[i].pj = (student[i].English + student[i].Math)/2;
}
for (i = 1; i <= 5; i++)
{
printf("第%d名同学信息:名字:%s 学号:%llu 数:%d 英:%d 平均:%d",i, student[i].name, student[i].ID, student[i].Math, student[i].English,student[i].pj);
}
return 0;
}

&student[i].name,
改成
student[i].name,
别的地方也有问题,改了下

img

#include <stdio.h>
typedef struct Stu
{
    char name[20];
    long long ID;
    int Math;
    int English;
    int pj;//pj为数学和英语地平均值
} Stu;
int main()
{
    int i;
    Stu student[5];
    printf("请输入学生信息:");
    for (i = 0; i < 5; i++)
    {
        scanf("%s %lld %d %d", student[i].name, &student[i].ID,&student[i].Math,&student[i].English);
        student[i].pj = (student[i].English + student[i].Math)/2;
    }
    for (i = 0; i < 5; i++)
    {
        printf("第%d名同学信息:\n名字:%s 学号:%lld 数:%d 英:%d 平均:%d\n",i+1, student[i].name, student[i].ID, student[i].Math, student[i].English,student[i].pj);
    }
    return 0;
}



(1)scnaf_s中,student[i].name前面的&不需要
(2)printf中,除第一个i外,其它i都改成i-1,否则数组越界。代码修改如下:

#include <stdio.h>
typedef struct Stu
{
    char name[20];
    unsigned long long ID;
    int Math;
    int English;
    int pj;//pj为数学和英语地平均值
}Stu;
int main()
{
    int i;
    Stu student[5];
    printf("请输入学生信息:");
    for (i = 0; i < 5; i++)
    {
        scanf_s("%s %llu %d %d", student[i].name, &student[i].ID,&student[i].Math,&student[i].English);
        student[i].pj = (student[i].English + student[i].Math)/2;
    }
    for (i = 1; i <= 5; i++)
    {
        printf("第%d名同学信息:名字:%s 学号:%llu 数:%d 英:%d 平均:%d\n",i, student[i-1].name, student[i-1].ID, student[i-1].Math, student[i-1].English,student[i-1].pj);
    }
    return 0;
}