- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言课件_14_tt_1结构体
定义结构体类型的一般形式: struct 结构体名 { 成员表列 } ; 例11-1 计算实发工资 在一个职工工资管理系统中,工资项目包括编号、 姓名、基本工资、奖金、保险、实发工资。 输入一个正整数n,再输入n个职工的前5项信息, 计算并输出每位职工的实发工资。 实发工资 = 基本工资 + 奖金 – 保险。 源程序 #includestdio.h struct employee{ int num; char name[20]; float jbgz, jj, bx, sfgz; }; main(void) { int i, n; struct employee e; printf(请输入职工人数n: ); scanf(%d, n); for(i = 1; i = n; i++){ printf(请输入第%d个职工的信息: , i); scanf(%d%s, e.num, e.name); scanf(%f%f%f, e.jbgz, e.jj, e.bx); e.sfgz = e.jbgz + e.jj - e.bx; printf(编号:%d 姓名:%s实发工资:%.2f\n, e.num, e.name, e.sfgz); } } 3. 结构体变量作为函数参数 当程序的规模较大,功能较多时,需要以函数的 形式进行功能模块的划分和实现; 如果在函数间传递结构数据,则需用结构体变量 作为函数的参数或返回值。 例11-2 结构体变量做为函数参数 改写例11-1,要求使用结构变量作为函数参数。 定义一个用于计算实发工资的函数: float count_sfgz(struct employee m) { return m.jbgz + m.jj - m.bx; } 再将主函数main中的语句: e.sfgz = e.jbgz + e.jj - e.bx; 改为: e.sfgz = count_sfgz(e); main() { struct student { long int num; char name[20]; char sex; char addr[20]; }a={89031,Li Lin,M,123 Beijing Road}; printf(NO.:%ld\nname:%s\nsex:%c\naddress:%s\n, a.num, a.name, a.sex, a.addr); } struct person { char name[20]; int count; }leader[3]={Li,0,Zhang,0,jin,0}; main() { int i,j; char v_name[20]; for (i=1;i=10;i++) { scanf(%s, v_name); for (j=0;j3;j++) if (strcmp( v_name,leader[j].name )==0) leader[j].count++; } printf(\n); for (i=0;i3;i++) printf(%5s:%d\n,leader[i].name,leader[i].count); } 联系人的基本信息:姓名、年龄和联系电话 最多容纳50名联系人的信息 具有新建和查询功能 程序解析-程序结构 程序结构 主函数main:程序的总体控制 函数new_friend:新建联系人功能 函数search_friend:查询联系人功能 程序解析-数据类型/变量 数据类型/变量 结构类型struct friends_list:在程序首部定义,其中的成员分别代表联系人的基本信息 struct friends_list{ char name[10]; /* 姓名 */ int age; /* 年龄 */ char telephone[13]; /* 联系电话 */ }; 结构体数组friends:每个元素就是一个结构体变量,对应一个联
文档评论(0)