结构体
要求:结构体的定义与使用
.1定义学生结构体类型,成员有姓名,学号,性别,年龄,英
语成绩、数学成绩。利用该结构体类型,定义结构体变量数组(5 个
元素),定义结构体指针变量,通过该指针变量实现对结构体数组元
素的 访 问。
定义如下函数并实现如下功能:
(1)初始化函数,实现对数组元素各分量的初始化(键盘输入
各项数据);
(2) 计算英语成绩和数学成绩的平均值,
(3)显示各数组元素的分量,
#include <stdio.h>
typedef struct student {
long studentID; //学号
char studentName[10]; //姓名
char structSex; //性别
int studentAge; //年龄
int scoreMath; //数学成绩
int scoreEnglish; //英语成绩
}STUDENT;
int main()
{
int i;
STUDENT stu[5];
STUDENT *pt;
pt=stu;
for(i=0;i<5;i++){
init(pt+i);
}
printf("数学平均成绩:+%lf"+avgscoreMath(pt,5));
printf("英语平均成绩:+%lf"+avgscoreEnglish(pt,5));
show(pt);
}
void init(STUDENT *pt){
pritf("请输入学生id:");
scanf("%ld",pt->studentID);
printf("请输入学生姓名:");
scanf("%s",pt->studentName);
printf("请输入学生性别:");
scanf("%c",pt->structSex);
printf("请输入学生年龄:");
scanf("%d",pt->studentAge);
printf("请输入学生数学成绩:");
scanf("%d",pt->scoreMath);
printf("请输入学生英语成绩:");
scanf("%d",pt->scoreEnglish);
}
int avgscoreEnglish(STUDENT *pt,n){
double avg;
int sum=0;
int i=0;
for(i=0;i<n;i++){
sum+=(pt+i)->scoreEnglish;
}
avg=(double)sum/n;
return avg;
}
int avgscoreMath(STUDENT *pt,n){
double avg;
int sum=0;
int i=0;
for(i=0;i<n;i++){
sum+=(pt+i)->scoreMath;
}
avg=(double)sum/n;
return avg;
}
void show(STUDENT *pt){
int i=0;
for(i=0;i<5;i++){
printf("%ld%s%c%d%d%d\n",(pt+i)->studentID,
(pt+i)->studentName,
(pt+i)->studentSex,
(pt+i)->studentAge,
(pt+i)->scoreEnglish,
(pt+i)->scoreMath);
}
}
错误不知道怎么改了,有大佬指点一下吗