目录

题目

输入格式:

输出格式:

输入样例1:

输出样例1:

输入样例2:

输出样例2:

题目分析

C语言代码

运行截图


题目

输入格式:

先输入候选人人数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

代码长度限制        16 KB

时间限制                400 ms

内存限制                64 MB

题目分析

这道题目可以说是对字符串和结构体的综合考察了,每个小点写起来其实不难,但是要把它们整合起来的确还是有点难度的,要注意数组大小、标志处理、字符串的排序等等,反正Void是错了几十次才码出来。。。。

C语言代码

#include<stdio.h>
#include<string.h>struct a//候选人
{char name[20];//候选人姓名,数组大小一定要把控好,不然废票数组会报错int cnt;//候选人票数统计
}a[10];int main()
{//int i,j,k;多循环建议是不要把循环变量声明为全局int n;int m;scanf("%d",&n);char shuru[20];//输入数组//开始候选人的输入for(int i=0;i<n;i++){scanf("%s",shuru);for(int j=0;shuru[j]!='\0';j++){if(shuru[j]>='A'&&shuru[j]<='Z')//大小写的转化{shuru[j]+=32;}strcpy(a[i].name,shuru);//测试点//printf("%s\n",a[i].name);a[i].cnt=0;//输入要完整,不要忘记票数初始化}}//开始整理票数scanf("%d",&m);int flag=0;//标志:用来判断是否为废票int inva=0;//废票地址变量char invalid[m][20];//废票数组char c[20];//票数的统计for(int i=0;i<m;i++){scanf("%s",shuru);strcpy(c,shuru);for(int j=0;shuru[j]!='\0';j++){if(shuru[j]>='A'&&shuru[j]<='Z')//大小写的转化{shuru[j]+=32;}}//测试点//printf("%s\n",shuru);for(int j=0;j<n;j++){if(strcmp(a[j].name,shuru)==0)//字符串的比较{a[j].cnt++;flag=1;}}if(flag==0){strcpy(invalid[inva],c);//废票存储inva++;}flag=0;//标志符的还原}/*for(int i=0;i<n;i++){printf("%s\n",a[i].name);//测试点:检测排序是否出现问题}*/struct a turn;//交换体//开始排序for(int i=0;i<n-1;i++)for(int j=i+1;j<n;j++)//冒泡排序{if(a[i].cnt<a[j].cnt){turn=a[i];//这里要注意不能交换位置,别问我怎么知道a[i]=a[j];a[j]=turn;}}/*for(int i=0;i<n;i++){printf("%s\n",a[i].name);//测试点}*///开始输出for(int i=0;i<n;i++){printf("%s:%d\n",a[i].name,a[i].cnt);}if(inva!=0){printf("\ninvalid vote:\n");for(int i=0;i<inva;i++){printf("%s\n",invalid[i]);}}return 0;
}

运行截图

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

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

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

  2. 编程统计候选人的得票数。设有3个候选人zhang、li、wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理。选民投票结束后程序自动显

    编程统计候选人的得票数.设有3个候选人zhang.li.wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理.选民投票结束后程序自动显 ...

  3. 编程统计候选人的得票数。设有3个候选人zhang、li、wang(注意:候选人姓名不区分大小写,输入大写小写都对),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理。

    编程统计候选人的得票数.设有3个候选人zhang.li.wang(注意:候选人姓名不区分大小写,输入大写小写都对),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理. ...

  4. C语言——结构体运用 编程统计候选人的得票数。设有3个候选人zhang、li、wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理。

    编程统计候选人的得票数.设有3个候选人zhang.li.wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理.选民投票结束后程序自动显 ...

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

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

  6. 对候选人得票的统计程序。设有3个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。

    对候选人得票的统计程序.设有3个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果. #include"stdio.h" #define N 3 #include&q ...

  7. 7-7 选民投票 STL

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

  8. 选民投票--统计候选人的得票数

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

  9. C语言编程题:选民投票

    选民投票 分数 6 全屏浏览题目 切换布局                                                             作者 刘仕筠 单位 成都信息工程大学 ...

最新文章

  1. Linux学习(十四)---大数据定制篇Shell编程
  2. 做CEO,一定要有“江湖感”
  3. ICLR 2021 | 使用CVAE学习干扰集,增强OOD以及对抗防御的能力
  4. SQL语句修改主键列
  5. 字符串匹配之KMP(KnuthMorrisPratt)算法(图解)
  6. python调用jar包的模块_使用 Python 的 JPype 模块调用 Jar 包
  7. 测试开发之缺陷报告上篇
  8. 基于 OpenCV 的图像阴影去除,你会吗?
  9. Jmail组件在C#中发送邮件代码:
  10. JAVA8免费下载安装(win10)
  11. 三、EXCEL复制数字到txt文件,存在空格
  12. 电子邮件营销新趋势-自动化
  13. 23位子网掩码是多少_子网掩码23位的是多少
  14. RabbitMQ面试要点
  15. Shell获取配置文件中一个字段的值
  16. 组件服务计算机卡死,wsappx进程占用系统资源过多导致电脑卡死的解决方法
  17. 学习笔记(11):Java小白修炼手册-一句话在Java中如何表达?快学Java字符串
  18. 互联网摸鱼日报(2022-11-29)
  19. android电话拨号器的使用
  20. html5 canvas 自定义画图裁剪图片

热门文章

  1. konva系列教程2:绘制图形
  2. rabbitmq修改端口
  3. 中央电大网考计算机基础试题,电大网考300道计算机应用基础试题(附答案)
  4. 前端4-2-10:Canvas与SVG之简介、对比总结
  5. WLAN-Web配置AP
  6. getparameter java_java中getAttribute和getParameter的区别
  7. 饥荒如何修改服务器人数,饥荒怎么扩展服务器人数 | 手游网游页游攻略大全
  8. (3)风色从零单排《C++ Primer》 重要的基本类型
  9. 魔兽世界无法连接语音聊天服务器,玩家感悟:你不知道的那个“上不了语音的人” - 178魔兽世界专区...
  10. AppCode3真的很不错