结构体

qq_38698204 2018-04-12 10:55:10
要求:结构体的定义与使用
.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);
}
}
错误不知道怎么改了,有大佬指点一下吗
...全文
925 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36260408 2018-04-25
  • 打赏
  • 举报
回复
printf拼写错了
destory27 2018-04-25
  • 打赏
  • 举报
回复
函数放在main后 , main之前要声明 scanf("%ld",pt->studentID); // scanf("%ld",&pt->studentID); 等等
Isnis-fallen 2018-04-25
  • 打赏
  • 举报
回复
init 等函数应放到main的前面,或者在main前面声明。 其他都是小错误.......
Lighthouses 2018-04-24
  • 打赏
  • 举报
回复
写函数的时候应该这样传递参数 (STUDENT * &pt) 这非常重要,不然改变不了实例中STUDENT的内容 而且如果在vs中编译的话,scanf会报错,%C会警告或者报错,,,这些是测试问题
千寻港生惠香 2018-04-13
  • 打赏
  • 举报
回复
1. pritf("请输入学生id:"); pritf? 2.计算平均分的int? double吧? 3. char structSex; //性别 studentSex? 4.scanf 多次使用,fflush 认真、耐心、细心。再多看看
FoolCarpe 2018-04-13
  • 打赏
  • 举报
回复
到底是什么错误? 运行错误?还是逻辑错误?
赵4老师 2018-04-13
  • 打赏
  • 举报
回复
关于自己是否适合编程的很简单的测试: 在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案: A里面有10处以上文字或标点错误 B里面没有文字或标点错误并敢为此跟人打赌 C里面没有文字或标点错误并且字体和排版完全与原稿一致 D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感 A不适合编程(理由:打字准确度偏低、粗心大意) B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念) C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证) D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!) 如果想从A变成B的话,到我的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧