清华大学出版社 TSINGHUA UNIVERSITY PRESS 当然,数组的初始化也可以用以下形式: struct student int num; }: struct student stu]={.},{.},{.}; 即先声明结构体类型,然后定义数组为该结构体类 型,在定义数组时初始化。从以上可以看到,结 构体数组初始化的一般形式是在定义数组的后面 加上:={初值表列};
当然,数组的初始化也可以用以下形式: struct student {int num; . }; struct student stu[ ]={{.},{.},{.}}; 即先声明结构体类型,然后定义数组为该结构体类 型,在定义数组时初始化。从以上可以看到,结 构体数组初始化的一般形式是在定义数组的后面 加上:={初值表列};
清华大学出版社 TSINGHUA UNIVERSITY PRESS 11.5.3结构体数组应用举例 下面举一个简单的例子来说明结构体数组的定义和 引用。 例11.2对候选人得票的统计程序。设有3个候选人, 每次输入一个得票的候选人的名字,要求最后输 出各人得票结果。 程序如下: #include <string.h> struct person {char name[20]; int count;
11.5.3 结构体数组应用举例 下面举一个简单的例子来说明结构体数组的定义和 引用。 例11.2对候选人得票的统计程序。设有3个候选人, 每次输入一个得票的候选人的名字,要求最后输 出各人得票结果。 程序如下: #include <string.h> struct person {char name[20]; int count; }
清华大学出版社 TSINGHUA UNIVERSITY PRESS leader[3]={"Li",0,"Zhang",0,"Fun",0}; mainO fint i,j; char leader-name[20]; for(i=1;i<=10;it+) {scanf("%s",leader-name); for(j=0;j<3;j++) if(strcmp(leader-name,leader[jl.name)==0) leader[j].count++: printf("\n");
leader[3]={"Li",0,"Zhang",0,"Fun",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++: } printf("\n");
清华大学出版社 TSINGHUA UNIVERSITY PRESS for(i=0;i<3;i++) printf("%5s:%d n",leader i].name, leader[i].count); 运行情况如下: Li Li Fun Zhang Zhang Fun
for(i=0;i<3;i++) printf("%5s:%d\n",leader[i].name, leader[i].count); } 运行情况如下: Li Li Fun Zhang Zhang Fun
清华大学出版社 TSINGHUA UNIVERSITY PRESS Li Fun Zhang Li Li:4 Zhang 3 Fun 3 程序定义一个全局的结构体数组leader,它有3个元 素,每一元素包含两个成员name(姓名)和count(票 数)。在定义数组时使之初始化,使3位候选人的 票数都先置零。见图11.6
Li Fun Zhang Li Li∶4 Zhang∶3 Fun∶3 程序定义一个全局的结构体数组leader,它有3个元 素,每一元素包含两个成员name(姓名)和count(票 数)。在定义数组时使之初始化,使3位候选人的 票数都先置零。见图11.6