例统计后选人选票 name count #include <string. h> struct person i char name 201; Zhan Int count Leader 3=(Li, 0, Zhang,, 0, Wang,0) Wang 0 main 运行情况 i int i,j; char leader name [ 20] for(i=1;i<=10;1++) i scanf("%s",leader name) for(=0; j<3: j++) Wang if( strcmp(leader name, leaderi. name)== Zhang leader.count++ for(i=0;1<31++) Li: 4 printf(" %5s: %d\n" lc leader[i]. name,leader [i]. count);Zhang: 3 Wang: 3
例 统计后选人选票 #include <string.h> struct person { char name[20]; int count; }leader[3]={“Li”,0,“Zhang”,0,”Wang“,0}; main() { int i,j; char leader_name[20]; for(i=1;i<=10;i++) { scanf("%s",leader_name); for(j=0;j<3;j++) if(strcmp(leader_name,leader[j].name)==0) leader[j].count++; } for(i=0;i<3;i++) printf("%5s:%d\n",leader[i].name,leader[i].count); } Li Zhang Wang 0 0 0 name count 运行情况: Li Li Wang Zhang …. Li : 4 Zhang : 3 Wang : 3
结构休和指 #includestdio. h> main i struct student i long int num char name [20 地址 nar seⅹ 结机例 Intfloat score; struct student stul;名成员 B stunt, *Fp=&n; struct student *p=&stul :10;分m=10 unum=101;台(*p)nm=101 stu 1. num=89101 strcpy(stu 1. name, Li Lin") p-sexM p->score=89.5 printf("nNo: %ld nname: %Snsex: %cInscore: %fn (p). num, p->name, stu 1. sex, p->score)
§11.6 结构体和指针 指向结构体变量的指针 ❖定义形式:struct 结构体名 *结构体指针名; 例 struct student *p; ❖使用结构体指针变量引用成员形式 存放结构体变量在内存的起始地址 num name sex age stu p struct student { int num; char name[20]; char sex; int age; }stu; struct student *p=&stu; (*结构体指针名).成员名 结构体指针名->成员名 结构体变量名.成员名 指向运算符 优先级: 1 结合方向:从左向右 例 指向结构体的指针变量 #include<stdio.h> main() { struct student { long int num; char name[20]; char sex; float score; }stu_1,*p; p=&stu_1; stu_1.num=89101; strcpy(stu_1.name,"Li Lin"); p->sex='M'; p->score=89.5; printf("\nNo:%ld\nname:%s\nsex:%c\nscore:%f\n", (*p).num,p->name,stu_1.sex,p->score); } 例 int n; int *p=&n; *p=10; n=10 struct student stu1; struct student *p=&stu1; stu1.num=101; (*p).num=101
★指向结构体数组的指针 例指向结构体数组的指针 struct student Int num num char name[201 name stu[0J seX char sex, p+ age Int age }stu3]={10101," Li Lin"M,18}, stu[l 110102, Zhang Fun,M, 19) {10104," Wang Min",F,20}; maino i struct student*p for(p=stu; p<stu+3: p++) printf("%d%s%c%d n",p-num, p->name, p->sex, p->age
指向结构体数组的指针 例 指向结构体数组的指针 struct student { int num; char name[20]; char sex; int age; }stu[3]={{10101,"Li Lin",'M',18}, {10102,"Zhang Fun",'M',19}, {10104,"Wang Min",'F',20}}; main() { struct student *p; for(p=stu;p<stu+3;p++) printf("%d%s%c%d\n",p->num,p->name,p->sex,p->age); } num name sex age stu[0] p stu[1] stu[2] p+1