例T11-0-c用结构体类型定义两个学生的有关信息 printf(sl num=%d, sl name=%os, Sl num, sI name) printf(sl sex=%\ n sl age=%d, sI sex, sI age) &o printf( sl score=%/05.2f, sl addr=%s", sl score, sl addr) . printf(s2. num=%d, S2. name=%S, S2 num, sl name) 令 printf((s2x%cns2age%d,”,S2.sex, sI age) .o printf("s2 score=%5.2f, S2. addr=%os, sl score, sl addr) 运行结果 sI num=11981, sl name=zhang xin, slsex=m sI age=19, sl score=96.50, SIaddr=shang hai s2. num=12981, S2. name=wang li sex S2.age=20,S2score=98.50, Sl addr=beijing 上一页下一页 返回
上一页 下一页 返回 第十一章 结构体 计算机系彭金莲制作 例T11-0-1.c 用结构体类型定义两个学生的有关信息 ❖ printf(“s1.num=%d, s1.name=%s,” , s1.num, s1.name); ❖ printf(“s1.sex=%c\ n s1.age=%d,” , s1.sex , s1.age); ❖ printf(“s1.score=%5.2f, s1.addr=%s”, s1.score, s1.addr); ❖ printf(“s2.num=%d, s2.name=%s,” , s2.num, s1.name); ❖ printf(“s2.sex=%c\ n s2.age=%d,” , s2.sex , s1.age); ❖ printf(“s2.score=%5.2f, s2.addr=%s”, s1.score, s1.addr); ❖ } 运行结果: s1.num=11981, s1.name=zhang xin, s1.sex=m s1.age=19, s1.score=96.50, s1.addr=shang hai s2.num=12981, s2.name=wang li, s2.sex=f s2.age=20, s2.score=98.50, s1.addr=beijing
例T1-0-2c对一组4个人的信息,用结构体类型数组进行处理 include“ stdio.h for(i=1;i5;i++){ main( scanf( %ld%s",&t[]. num, ti] name) i int 1; float j getchar struct s i scanf("%oc%d, &ti sex, &t[1]. age ong int num; scanf(%f, &j) char name[ 201 t[iscore=]; char sex scanf9s”t[]addr);} for(i-1; 1<5; 1++)i Int age printf(%8d%-8” float score, t]num;t[」name); char addr[20];); printf(%o-4c%-6d", t[i]. sex. t[i ]. age) struct s t5 printf(%0-8.2f%-10s n printf( num name sex ti score, t[1. addr); 3 age score addr\n) 上一页下一页 返回
上一页 下一页 返回 第十一章 结构体 计算机系彭金莲制作 例T11-0-2.c 对一组4个人的信息,用结构体类型数组进行处理 #include “stdio.h” main( ) { int i; float j; struct s { long int num; char name[20]; char sex; int age; float score; char addr[20]; } ; struct s t[5]; printf(“num name sex age score addr\ n”); for(i=1; i<5; i++) { scanf(“%ld%s”, &t[i].num,t[i].name); getchar(); scanf(“%c%d”,&t[i].sex,&t[i].age); scanf(“%f”,&j); t[i].score=j; scanf(“%s”,t[i].addr); } for(i=1; i<5; i++) { printf(“%8ld %-8s ”, t[i].num,t[i].name); printf(“%-4c %-6d ”,t[i].sex,t[i].age); printf(“%-8.2f %-10s\ n”, t[i].score,t[i].addr); } }
四、结构体类型的几点说明 令1、结构体变量使用时,先定义结构体类 型,再定义变量或数组为该类型 2、结构体成员可单独使用,方法如普通 变量; 3、成员名和程序中的变量名可相同, 它们之间互不影响; 4、结构体成员还可以是结构体变量 上一页下一页 返回
上一页 下一页 返回 第十一章 结构体 计算机系彭金莲制作 四、结构体类型的几点说明 ❖ 1、结构体变量使用时,先定义结构体类 型,再定义变量或数组为该类型; ❖ 2、结构体成员可单独使用,方法如普通 变量; ❖ 3、成员名和程序中的变量名可相同, 它们之间互不影响; ❖ 4、结构体成员还可以是结构体变量
例如:结构体成员还可以是结构体变量 main( s2num=1002 i struct date fint month strcpy(s2. name," wang 1); int day S2. b. month=12; S2. b day=28 Int year } 52. b year=1984 struct s printf( o Int num od d char name [201 sI num, sl name, Sl b. month, s1b struct date b;i sl, S2 day, sl b year); sInum=1001 printf(%od S strcpy (sl name, Zhang xin') slb month=10 S2. num, S2. name, S2. b. month, sl b day=18: Sl. b year=1983 52. b day, s2. b year) 上一页下一页 返回
上一页 下一页 返回 第十一章 结构体 计算机系彭金莲制作 例如:结构体成员还可以是结构体变量 main() { struct date {int month; int day; int year;}; struct s { int num; char name[20]; struct date b; } s1, s2; s1.num=1001; strcpy(s1.name, “zhang xin”); s1.b.month=10; s1.b.day=18;s1.b.year=1983; s2.num=1002; strcpy(s2.name, “wang li”); s2.b.month=12;s2.b.day=28; s2.b.year=1984; printf(“%d, %s, %d, %d, %d\n”, s1.num,s1.name,s1.b.month,s1.b .day,s1.b.year); printf(“%d, %s, %d, %d, %d\n”, s2.num,s2.name,s2.b.month, s2.b.day,s2.b.year); }