一个结构体变量中可以存放一组数据(如一个学生的学号、姓名、成绩等数据)。如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组。结构体数组与以前介绍过的数值型数组不同之处在于:每个数组元素都是一个结构体类型的数据,它们都分别包括各个成员项。
下面举一个简单的例子来说明结构体数组的定义和引用。
设有3个候选人,最终只能有1个人当选为领导。今有10个人参加投票,从键盘先后输入这10个人所投候选人的名字,要求最后输出各候选人得票结果。
可以定义一个候选人结构体数组,包括10个元素,在每个元素中存放有关的数据。
编写程序:
程序分析:
程序定义一个全局的结构体数组leader,它有3个元素,每一元素包含两个成员name(姓名)和count(得票数)。在定义数组时使之初始化,使3位候选人的票数都先置零。
在主函数中定义字符数组leader_name,它代表选票上被选人的姓名。在10次循环中每次输入一张选票上的信息(一个被选人的姓名),然后把它与3个候选人姓名一一相比,看它和哪一个候选人的名字相同。注意leader_name是和leader[j].name相比,leader[j]是数组leader的第j个元素,它包含两个成员项,leader_name应该和leader数组第j个元素的name成员相比。当j为某一值时,若输入的姓名与leader[j].name相等,就执行"leader[j].count++"。使leader[j]的成员count的值加1,表示此人又得了一票。在输入和统计结束之后,将3人的名字和得票数输出。
在这个例子中,也可以不用字符数组而用string方法的字符串变量来存放姓名数据,程序可修改如下:
运行结果:
显然后一个程序使用更方便,易读性更好。
标签:10,姓名,name,程序,得票,数组,leader,候选人 From: https://blog.csdn.net/2301_80138271/article/details/139706165