第08讲结构.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第08讲结构

虞铭财 mingcaiyu@; 结构;例:求二维平面上两点间的距离。;例:对候选人得票的统计程序。设有3个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。;#includestdio.h #include string.h struct person{ char name[20]; int count; }candidate[3]={Li, 0, Zhang, 0, Fun, 0}; ;int main() { int i, j; char candi_name[20]; for(i=0; i10; i++) { scanf(%s, candi_name); for(j=0; j3; j++) if(strcmp(candi_name, candidate[j].name)==0) candidate[j].count++; } printf(\n); for(i=0; i3; i++) printf(%5s:%d\n, candidate[i].name, candidate[i].count); };第08讲 结构;一、结构的基本知识;点是最基本的对象,假设用x与y坐标表示它。可以采用结构存放这两个坐标,其声明如下: struct point{ double x; double y; };;关键字struct引入结构声明。 结构声明由包含在花括号内的一系列声明组成。 关键字struct后面的名字是可选的,称为结构标记(这里是point)。 结构标记用于为结构命名,代表花括号内的声明,可以用它作为该声明的简写形式。;结构中定义的变量称为成员。 结构成员、结构标记和普通变量(即非成员)可以采用相同的名字,它们之间不会冲突,因为通过上下文分析总可以对它们进行区分。 另外,不同结构中的成员可以使用相同的名字,但是,从编程风格方面来说,通常只有密切相关的对象才会使用相同的名字。;1、结构变量的定义;(1)在声明结构类型的同时定义变量;(2)先声明结构类型再定义变量;2、结构变量的引用;3、结构变量的初始化;4、对结构变量赋值;例如:;提示:;5、结构的嵌套;二、结构数组;1、结构数组的定义;(1)在声明结构类型的同时定义数组;(2)先声明结构类型再定义数组;2、结构数组的初始化;例如:;例:计算学生的总成绩、平均成绩和不及格的人数。;struct stu{ int num; char *name; char sex; float score; }boy[5]={{1101, Li ping, M, 45}, {1102, Zhang ping, M, 100}, {1103, He he, F, 92.5}, {1104, Cheng lin, F, 87}, {1105, Wan ming, M, 58}};;#includestdio.h int main(){ int i, c=0; float ave, s=0; for(i=0; i5; i++){ s += boy[i].score; if(boy[i].score60) c += 1; } printf(s=%.1f\n, s); ave=s/5; printf(“average=%.1f\ncount=%d\n, ave, c); };注意:;三、结构指针;结构指针;结构指针;例:对于下面变量定义,哪个表达式是不正确的。;例:;#includestdio.h int main( ) { struct point{ int x, y; }a[4]={{1, 2}, {3, 3}, {5, 10}, {12, 8}}; struct point *p=a; printf(%d , p++ - x); printf(%d , ++p - y); printf(%d\n, (a+3) - x); };例:有一个结构体变量stu,内含学生学号、姓名和3门课的成绩。要求在main函数中赋以值,在另一函数print中将它们打印输出。;#includestdio.h #define FORMAT %s\n%s\n%.1f\n%.1f\n%.1f\n struct student{ char number[20]; char name[20]; double score[3]; }stu={09110003201, Li Li, 67.5, 89, 78.6}; void print(struct student *p) { printf(FORMAT, p-number, p-name, p-score[0], p-score[1],

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档