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,
别的地方也有问题,改了下
#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;
}