- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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],
您可能关注的文档
最近下载
- 《电商生鲜配送发展中的问题及其对策—以盒马鲜生为例》16000字.docx VIP
- 2024高二地理期末复习选必1知识点清单 .pdf VIP
- 生鲜电商的发展问题及对策—以盒马鲜生为例.pdf VIP
- 生鲜电商的发展问题及对策——以盒马鲜生为例.docx VIP
- 田字格word模板(3)最好.doc VIP
- 2024学年九年级上学期第一次月考数学试题及参考答案 .pdf VIP
- 新零售背景下生鲜企业的发展研究——以盒马鲜生为例.docx VIP
- 连锁零售企业物流配送发展现状、问题及对策研究——以盒马鲜生为例.docx VIP
- 桥架多少钱一米?安装大概多少钱?桥架国标厚度是多少?.docx VIP
- 第八章海洋肽类教材.ppt VIP
文档评论(0)