第九章结构体、共用体和枚举类型的应用.pptVIP

  • 0
  • 0
  • 约1.15万字
  • 约 67页
  • 2017-07-16 发布于北京
  • 举报

第九章结构体、共用体和枚举类型的应用.ppt

运行程序 【实例2】按照表9-1的情况,定义一个结构体数组,输入一个班级的学生信息,要求: (1)分别统计出男生和女生人数; (2)把平均成绩在85分以上的学生找出来,并输出这部分学生的如下信息:姓名、性别、年龄、家庭地址。 #includestdio.h #define N 20 struct student { char num[10]; char name[20]; char sex; int age; float c,vb,os; char add[30]; }; main( ) { struct student b[N]; float flg; int i,m=0,f=0; for(i=0;iN;i++) { printf(please enter sex,age,c,vb,os); scanf(%c,b[i].sex); scanf(%d,b[i].age); scanf(%f,flg); b[i].c=flg; scanf(%f,flg); b[i].vb=flg; scanf(%f,flg); b[i].os=flg; gets(b[i].num); gets(b[i].name); gets(b[i].add); } for(i=0;iN;i++) { if(b[i].sex==m||b[i].sex==M) m++; else f++; if((b[i].c+b[i].vb+b[i].os)/385) printf(%s,%c,%d,%s,b[i].name,b[i].sex,b[i].age,b[i].add);} printf(\n\nboy=%d,girl=%d,m,f); } 第三节 结构体与指针 一、结构体指针变量的定义与应用 struct 结构体标识名 *结构体指针变量名; 1、结构体指针变量定义的一般形式: 例如:struct student *pt,*stud; 说明: 指针变量既可以指向单一的结构体变量, 也可以指向结构体数组。 结构体指针变量名=结构体变量; 2、结构体指针变量的赋值 结构体指针变量名=结构体数组名; 例如: struct student *p1,*p2,a,b[4]; p1=a; p2=b; ① 结构体指针[下标] 或 *(结构体指针+下标) ② 结构体指针[下标].成员 或(结构体指针+下标)-成员 3、结构体指针变量的引用 ① 结构体指针名-成员 ②(*结构体指针名).成员 (1)对指向结构体变量的结构体指针的引用 (2)对指向结构体数组的结构体指针的引用 运行程序 #includestdio.h #includestring.h main() { struct student { char *num,name[20]; float c,vb; } stu,*p; p=stu; p-num=04201; /*通过-引用num*/ strcpy(p-name,Anshili); stu.c=78.5; (*p).vb=83; printf(student No.%s name:%s c:%5.1f vb:%5.1f, p-num,p-name,p-c,p-vb); } 【例9-3】指向结构体变量的结构体指针用法。 第四节 结构体与函数 一、“值传递”方式 向函数传递结构体变量成员(成员不是数组名或指针) 定义函数f1(float x){……} f1(stu.c); 向函数传递结构体变量 f2(stu); 定义函数f2(struct student y){……} 二、“地址传递”方式 向函数传递结构体变量的地址 f3(p) 或f3(stu) 定义函数f3(struct student *z){……} 向函数传递结构体成员的地址或指针 f4(stu.num) 或f5(stu.c) 定义函数f4(char *p){……}或 f5(float *q){……} 三、函数返回值为结构体类型数据 定义函数: struct student f6(struct student x){……} /*定义一个返回值为struct student类型的函数,函数的行参为struct student类型*/ 注意: 调用函数过程中,接收函数值的变量定义为相同struct student类型的变量。 四、函数的返回值为结构体指针类型 定义函数: struct s

文档评论(0)

1亿VIP精品文档

相关文档