编程统计候选人的得票数。有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字(姓名最长为9个字节),若选民输错候选人姓名,则按废票处理。程序自动统计各候选人的得票结果,并按照得票数由高到低的顺序排序。最后输出各选票人得票结果和废票信息。

输入格式:

先输入候选人人数n和n名候选人姓名,再输入选民人数m和m位选民的选票。

输出格式:

先根据选票结果由高到低输出各候选人得票结果,再根据废票情况输出废票信息(换行后,输出提示信息“invalid vote:”,再输出废票信息)。

输入样例1:

3
zhang
li
wang
9
Wang
Zhang
zhuang
LI
Liao
ZHANG
WANG
Wang
wang

输出样例1:

wang:4
zhang:2
li:1invalid vote:
zhuang
Liao

输入样例2:

2
liu
yang
5
Liu
liu
YANG
yang
Liu

输出样例2:

liu:3
yang:2

源代码 

注意:合法选手得票数为0也要输出!!!!!

#include <iostream>
using namespace std;
struct human
{string name;int num;
};
int main()
{int n;cin>>n;getchar();human p[256];human invalid[256];for(int i = 1;i <= n;i ++ )cin>>p[i].name;int m;cin>>m;getchar();int setflag=0; for(int i = 1;i <= m;i ++ ){string str;cin>>str;//处理投票选手名字string a=str; for(int o = 0;o < a.size();o ++ ){if(a[o]>='A'&&a[o]<='Z')//姓名大小写转换 {a[o]=a[o]+32;}}int flag=0;for(int j = 1;j <= n;j ++ ){if(a==p[j].name){flag=1;p[j].num++;break;}}if(flag==0){setflag=1;invalid[i].name=str;invalid[i].num++;}}//按照得票数降序排列 for(int i = 1;i < n;i ++ ){for(int j = i + 1;j <= n;j ++ ){if(p[i].num<p[j].num){string t;t=p[i].name;p[i].name=p[j].name;p[j].name=t;swap(p[i].num,p[j].num);}}}//输出合法选手以及得票数 for(int i = 1;i <= n;i ++ ){cout<<p[i].name<<":"<<p[i].num<<endl;}if(setflag==1){cout<<endl;cout<<"invalid vote:"<<endl;for(int i = 1;i <= m;i ++ ){if(invalid[i].num!=0){cout<<invalid[i].name<<endl;}}}
}

选民投票 (15 分)相关推荐

  1. 7-3 选民投票 (8 分)编程统计候选人的得票数。有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字(

    7-3 选民投票 (8 分) 编程统计候选人的得票数.有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的 ...

  2. 调查电视节目受欢迎程度 (15分)

    调查电视节目受欢迎程度 (15分) 某电视台要调查观众对该台8个栏目(设相应栏目编号为1~8)的受欢迎情况,共调查了n位观众(1≤n≤1000),现要求编写程序,输入每一位观众的投票情况(每位观众只能 ...

  3. 7-3 调查电视节目受欢迎程度 (15分)

    7-3 调查电视节目受欢迎程度 (15分) 某电视台要调查观众对该台8个栏目(设相应栏目编号为1~8)的受欢迎情况,共调查了n位观众(1≤n≤1000),现要求编写程序,输入每一位观众的投票情况(每位 ...

  4. 7-4 调查电视节目受欢迎程度 (15分)

    7-4 调查电视节目受欢迎程度 (15分) 某电视台要调查观众对该台8个栏目(设相应栏目编号为1~8)的受欢迎情况,共调查了n位观众(1≤n≤1000),现要求编写程序,输入每一位观众的投票情况(每位 ...

  5. 编程统计候选人的得票数。设有3个候选人,Li,Zhang,Fun。 要求输入投票总数n,然后每次输入一个得票的候选人的名字(区分大小写),若选民输错候选人姓名,则按废票处理。 选民投票结束后程序自动显

    编程统计候选人的得票数.设有3个候选人,Li,Zhang,Fun. 要求输入投票总数n,然后每次输入一个得票的候选人的名字(区分大小写),若选民输错候选人姓名,则按废票处理. 选民投票结束后程序自动显 ...

  6. 浙大版《C语言程序设计(第3版)》题目集 练习2-17 生成3的乘方表 (15 分)

    练习2-17 生成3的乘方表 (15 分) 输入一个非负整数n,生成一张3的乘方表,输出3​0​​~3​n​​的值.可调用幂函数计算3的乘方. 输入格式: 输入在一行中给出一个非负整数n. 输出格式: ...

  7. 团体——L1-005 考试座位号 (15 分)

    L1-005 考试座位号 (15 分) 方法一: #include<stdio.h> struct stu{char a[20];int s,k; }xue; int main() {st ...

  8. 习题2.5 两个有序链表序列的合并 (15 分)

    习题2.5 两个有序链表序列的合并 (15 分) 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列. 函数接口定义: List Merge( List L1, List L ...

  9. 习题2.4 递增的整数序列链表的插入 (15 分)

    习题2.4 递增的整数序列链表的插入 (15 分) 本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性. 函数接口定义: List Insert( List ...

最新文章

  1. 「biáng biáng 面」马上可以打出来了!Unicode发布13.0版本,收录4939个生僻字
  2. 【转】python中的对象拷贝
  3. Java 7的类型推断
  4. linux 使用碎碎记
  5. 动态设置样式 calc计算
  6. 深度学习自学(二十五):目标跟踪
  7. LNMP详解(十六)——Nginx日志切割
  8. ceph luminous 版本 osd掉线处置
  9. AD7124-8使用说明与程序
  10. android url后缀名,Android获取URL中文件的扩展名的方法
  11. 街头篮球一直提示服务器维护怎么解决,街头篮球为什么进不去 街头篮球进不去怎么办...
  12. 2021年焊工(初级)最新解析及焊工(初级)找解析
  13. 【Java+MySQL】随机添加测试数据栗子
  14. 共享打印机客户端报错因为文件共享不安全需要SMB1协议
  15. java生成二维码技术实现
  16. 自创计算机语言,【图片】【自创语言教程】———创造属于自己的语言!(上)【那些漫长岁月吧】_百度贴吧...
  17. java inputstream长度_java.net.*下的相关问题 取得inputStream的长度
  18. 国内开源镜像站点汇总[超级多]
  19. 【坤坤、开团、鸡你太美表情包】
  20. 模仿的豌豆荚滑动Menu 的 实现

热门文章

  1. 购物网站研究分析报告
  2. Flask(十六)——WTF
  3. Java通过递归解决0-1背包问题的代码
  4. 计算机考研转专业难度大吗,大学里想转专业怎么做?985高校转专业条件及难度排行榜公布!...
  5. 服务器响应时间缓慢的解决方法
  6. 巧记glsl的mix
  7. 关于soapUI模拟返回不同response
  8. vue 插件 你可能需要的轮子 集合
  9. 计算机网络中属于通信子网,通信子网,计算机网络,互联网三者有什么关系其区..._通信工程师_帮考网...
  10. 将项目部署到Github