




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
195结构体、共用体和枚举类型10.1 结构体类型与变量的定义10.1.1 结构体类型的定义struct student long int num; char name10; float score1,score2,score3;struct student student1,student2;图10.1 struct student类型量结构图10.2 数组作为结构体成员10.1.2 结构体类型的嵌套定义struct date int month; int day; int year;struct student long int num; chat name10; char sex; struct date birthday; char addr30; student1,student2;图10.3 结构体的嵌套结构10.1.3 结构体变量的初始化struct student long int num; char name10; char sex; int age; float score; student1=9908001,Li Ming,M,19,87.5;图10.4 初始化后结构体变量各成员的值图10.5 嵌套结构的结构体变量的初始化10.2 结构体类型变量的引用#include #include #define STU struct studentSTU long num; char name10; char sex; int age; float score; ;void main( ) STU student1; printf(num:); scanf(%ld,&student1.num); /*输入student1 的各成员值*/ printf(name:); getchar(); /*滤掉输入student1.num后所加的回车符*/ gets(); printf(sex(M/F):);scanf(%c,&student1.sex); printf(age:); scanf(%d,&student1.age); printf(score:); scanf(%f,&student1.score); /*输出student1的各成员值*/ printf(num: %ldn,student1.num); printf(name: %sn,); printf(sex: %cn,student1.sex); printf(age: %dn,student1.age); printf(score: %fn,student1.score);#include struct date int month; int day; int year;struct student long num; char name10; char sex; struct date birthday; char addr30;void main( ) struct student stud1=990801,Li Ming,M,9,12,1981,HongKong; printf(num: %ldn,stud1.num); printf(name: %sn,); printf(sex: %cn,stud1.sex); printf(birthday:%d/%d/%dn,stud1.birthday.month,stud1.birthday.day, stud1.birthday.year); printf(address:%sn,stud1.addr);10.3 结构体数组struct student long int num; char name10; float score; stus3;struct student long int num; char name10; float score; stus3=990801,Li Ming,92.5, 990802,Lu Yun,89.0, 990803,Yang Hong ,96.5;#define MAX 30#includestruct stuscore long int num; char name10; int score3; int total;void main( ) struct stuscore stuMAX; int i; for (i=0;iMAX;i+) /*输入全班同学的各项信息*/ printf(num:); scanf(%ld,&stui.num); printf(name:); scanf(%s,); printf(Three score:); scanf(%d,%d, %d,&stui.score0,&stui.score1,&stui.score2); stui.total=stui.score0+ stui.score1+ stui.score2; /*输出全班同学成绩表*/ printf(num name score1 score2 score3 totaln); for (i=0;iMAX;i+) printf(%6ld%-10s%7d%8d%8d%8dn,stui.score0,stui.score1, stui.score2, stui.total); 10.4 指向结构体变量的指针变量#include struct student long int num; char name20; char sex; float score;void main( ) struct student stu1=990801,Li Ming,M,92.5,*p; p=&stu1; printf(No.:%ldnname:%snsex:%cnscore:%fn,stu1.num,, stu1.sex, stu1.score); printf(No.:%ldnname:%snsex:%cnscore:%fn,(*p).num,(*p).name, (*p).sex, (*p).score);#include struct student long int num; char name10; int score;void getdata(struct student *p) printf(num:); scanf(%ld,&p-num); printf(name:); scanf(%s,p-name); printf(score:); scanf(%d,&p-score);void main( ) struct student stu1; getdata(&stu1); printf(num:%ldnname:%snscore:%dn,stu1.num,, stu1.score);#include struct student long int num; char name10; float score; stu3= 990801,Li Ming,92.5, 990802,Lu Yun,89.0, 990803,Yang Hong, 96.5 ;void main( ) struct student *p; printf(No. Name scoren); for (p=stu;pnum,p-name,p-score);图10.6 例10.10的算法#define MAX 30#include struct stuscore long int num; char name10; int score3; int total;/*结构体数组的输入函数*/void stu_in(struct stuscore *stu) struct stuscore *p; for (p=stu;pnum); printf(name); scanf(%s,p-name); printf(threescore:); scanf(%d,%d,%d, &p-score0,&p-score1, &p-score2); p-total=p-score0+p-score1+p-score2; /*对结构体数组按总成绩排序函数*/void stu_sort(struct stuscore *stu) struct stuscore student,*p1,*p2; for (p1=stu;p1stu+MAX-1;p1+) for (p2=p1+1;p2totaltotal) student=*p1; *p1=*p2; *p2=student; /*结构体数组的输出函数*/void stu_out(struct stuscore *stu) struct stuscore *p; printf(num name score1 score2 score3 totaln); for (p=stu;pnum,p-name,p-score0,p-score1, p-score2,p-total );void main( ) struct stuscore stuMAX; stu_in(stu); stu_sort(stu); stu_out(stu);10.5 共 用 体10.5.1 共用体类型的说明和变量定义图10.7 共用体变量的结构图10.5.2 共用体变量的引用#include union change char c2; short a; un;void main( ) un.a=16961; printf(%d,%cn,un.c0,un.c0); printf(%d,%cn,un.c1,un.c1);图10.8 共用体量un的值10.6 枚举类型数据10.6.1 枚举类型的定义 10.6.2 枚举类型变量的声明10.6.3 枚举类型变量的使用 #include stdio.henum weekday Sun,Mon,Tue,Wed,Thu,Fri,Sat ;void main( ) enum weekday workday,week_end; workday=Fri; week_end=Sun; printf(%d,%dn,workday,week_end);#include enum SeasonType Spring=1,Summer,Fall,Winter ;/*表示季节的枚举类型 */void PrintSeason(SeasonType s) /*输出s表示的季节 */ switch(s) case Spring: printf(Spring); break; case Summer: printf(Summer); break; case Fall: printf(Fall); break; case Winter: printf(Winter); break; void main( ) enum SeasonType cur_s,next_s; int s_order; printf(What season is it now?n); printf(t1-Spring 2-Summern); printf(t3-Fall 4-Wintern); printf(Answer:); scanf(%d,&s_order); /*输入季节序号*/ if(s_order4) printf(Wrong answer!n); return; cur_s= (enum SeasonType)s_order; /*将序号转化为枚举类型并赋给cur_s*/ /*下面if语句用于求出下一季节*/ if(cur_s!=Winter) next_s=(enum SeasonType)(int)cur_s+1); else next_s=Spring; printf(It is ); PrintSeason(cur_s); printf( now.n); PrintSeason(next_s); printf( is comming!n);10.7 typedef命令的使用习 题 10struct date int year,month,day;today;printf(%dn,sizeof(struct date);#include struct mon int x; char c;func(struct mon b ) b.x=20; b.c=y;void main( ) struct mon a=5,x; func(a); printf(%d,%cn,a.x,a.c);#include void main( ) struct a int x; int y; b2=1,2,3,4; printf(%d,b1.y-b0.x);#include void main( ) struct student struct int x; int y; m; int a; int b; n; n.a=1;n.b=2; n.m.x=n.a+n.b; n.m.y=n.a-n.b; printf(%d,%d,n.m.x,n.m.y);#include struct stu int x; int *y;*p;int dt=1,2,3,4;struct stu a4=5,&dt0,6,&dt1,7,&dt2,8,&dt3;void main( ) p=a; printf(%d,(+p)-x); printf(%d,+p-x); printf(%dn,+(*p-y);#include struct student /*学生信息结构体类型定义*/ int num; /*学号*/ char name16; /*姓名*/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电瓶电池知识培训内容课件
- 高空吊物安全知识培训课件
- 北京市社工证报考试卷及答案
- URAT1-inhibitor-13-生命科学试剂-MCE
- Dimethenamid-d3-生命科学试剂-MCE
- 北京安全员a考试题库及答案
- 软件开发服务合同(编号5)
- 护士转正考试题及答案
- 个人与团队管理机考试题及答案
- 真菌学考试题及答案
- 《福建省城镇道路清扫保洁作业指导价》
- 悬赏合同范例
- 《小儿腹泻的护理》课件
- 新人教版四年级英语上册教学计划
- 大数据时代到来的成因
- 储能电池模组PACK和系统集成项目可行性研究报告
- 新学期学校导览模板
- 教学常规管理要求
- 标准普尔《信用评级》方法概要
- 2024长沙劳动合同范本长沙劳动合同样本
- 2024年小学一年级新生入学开学第一课培训课件
评论
0/150
提交评论