对候选人得票的统计程序

        一个结构体变量中可以存放一组数据(如一个学生的学号、姓名、成绩等数据)。如果有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方法的字符串变量来存放姓名数据,程序可修改如下:

运行结果:

        显然后一个程序使用更方便,易读性更好。

  • 22
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值