例统计后选人选票 name count #include <string. h> struct person 0 i char name[201 Zhang 0 Int count Leader 3=(Li,, Zhang, 0, Wang, 0) W ang 0 maino 运行情况: i int i, j; char leader name[20] for(i=1;i<=10;i++) i scanf(%/os"leader name) for(=0j<3j++) Wang if(strcmp(leader name, leaderi] name)==0) Zhang r leader[i]. count++ for(i=0;1<3;i++) printf("%5s: %dv header [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
构休和指全 #include<stdio. h> mair i struct student i long int num; char name [20] 地址 har sex (*结例 Intfloat score; struct student+p&st单分 struct student stul 名成 Stun, * Fp=&n p8gs:10:分m10 stul, num=101;分(*p)nm=101 stu 1. num=89101 strcpy(stu 1. name, Li Lin") p-Sex-M p->score=89.5 printf("nNo: %ld nname: %sInsex: %ocInscore: %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[0] char sex seX p age int age }stu[3]={10101," Li Lin"M,18}, stull {10102," Zhang Fun",M,19} 10104," Wang Min",F,20}}; maino stu[ 1 i struct student p for(p==stu, p<stu+3; p++) printf"o lod%S%c%d\n",p->num, p->name, p->sbx. 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