计算机基础与C语言程序设计(第三版)第10章-结构体与共用体

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

注意: (1) 定义了一种类型,不是变量。 (2) 成员可以是任意类型, (3) 最后的分号“;”不能省略。 (4) 可以嵌套定义,如:
char addr[30];
};
num
name
sex
041000 Li Ping
M
041001 Liu Yi
F
age
Score
adrr
18
78
Beijing
20
88
float score[3];
}stu={“wang_li”, 81,77,96};
【例10.1】输入某学生的姓名、年龄和5门功课成绩, 计算平均成绩并输出。
#include <stdio.h> void main() {struct student
{ char name[10]; int age; float score[5],ave;
}
for(i=0;i<N-1;i++) { k=i; for(j=i+1;j<N;j++) if(a[k].m<a[j].m) k=j; temp=a[i]; a[i]=a[k]; a[k]=temp;
运行结果: 3 2↙ 1 1↙ 5 4↙ 5.00+4.00i 3.00+2.00i 1.00+1.00i
第10章 结构体与共用体
第10章 结构体与共用体
10.1 结构体类型的定义 10.2 结构体类型变量 10.3 结构体数组 10.4 结构体和指针 10.5 结构体和函数 10.6 链 表 10.7 共用体 10.8 枚 举 10.9 用typedef定义类型
num name sex
041000 Li Ping M
2.结构体数组的初始化 struct student { int num; char name[20]; char sex; int age; float score[3]; } stu[2]={ {1101,”wang li”,’M”,21,75,82,94}, {1102,”li
ping”,’F’,20,82,79,90} }; 注意:定义数组stu时,数组长
#define N 3 #include <stdio.h> #include <math.h> void main() { struct complex
{ float x,y; float m;
}a[N],temp; int i,j,k; for(i=0;i<N;i++)
{ scanf("%f%f",&a[i].x,&a[i].y); a[i].m=sqrt(a[i].x*a[i].x +a[i].y*a[i].y);
041001 Liu Yi
F
041002 Yao Li M
age Score adrr
18
78 Beiji9
90 Beijing
10.1结构体类型的定义
一般形式:
struct 结构体名 { 结构体成员表 };
struct student { int number;
char name[20]; char sex; int age; float score;
程序运行情况: wang_li 21↙ 82 77 91 68 85↙ wang_li 21 82.0 77.0 91.0 68.0 85.0 average= 80.6
10.3 结构体数组
10.3.1 结构体数组的定义与初 始化
1.结构体数组的定义 例如:
struct student { int num; char name[20]; char sex; int age; float score[3]; }; struct student stu[10];
}stu; int i; stu.ave=0; scanf("%s%d",,&stu.age); for(i=0;i<5;i++)
{ scanf("%f",&stu.score[i]); stu.ave+=stu.score[i]/5.0;
} printf("%s%4d \n",,stu.age);
Jilin
041002 Yao Li
M
19
90
Beijing
struct date { int year; int month; int day; };
struct stu { long int number;
char name[20]; char sex; struct date birthday; float score[3]; char address[30]; };
例s1 如地:址 struct st { int num; char name[20]; float score; }s1,s2;
num name[20] sex birthday
score[3]
addr[30]
10.2.2 结构体变量的引用
结构体变量名.成员名 例如: struct date {int year; int month; int day; } struct example { int num; char name[20]; struct date bir; }s1,s2;
10.2 结构体类型变量 如: struct stu s1,s2;
10.2.1 结构体类型变量的定义
1 先定义类型,再定义变量。
struct 结构体名 变量名等;
2.在定义结构体类型的同时定 义变量
struct 结构体名
{成员表}变量名表列; 3.直接定义结构体类型变量
struct {成员表}变量名表列;
度可以不指定,如: stu[ ]={{... ...}, {... ...}};
10.3.2 结构体数组的引用
下面通过一个例子来说明结构体数组的引用。
【例10.2】输入3个复数的实部和虚部放在一个结构体 数组中,根据复数模由大到小顺序对数组进行排序 并输出。(注:复数的模=sqrt(实部*实部+虚部* 虚部))
各成员的引用形式如下: s1.num=101; s2.num=s1.num+1; strcpy(,”wang”); s1.bir.year=1985; 注意:结构体变量的初始化 结构体类型 结构体变量名={初 始值表}; 例如:
struct student
{char name[10];
相关文档
最新文档