(PTA)7-3 选民投票 编程统计候选人的得票数。有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字
目录
题目
输入格式:
输出格式:
输入样例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个字节),若干位选民,选民每次输入一个得票的候选人的名字相关推荐
- 7-3 选民投票 (8 分)编程统计候选人的得票数。有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字(
7-3 选民投票 (8 分) 编程统计候选人的得票数.有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的 ...
- 编程统计候选人的得票数。设有3个候选人zhang、li、wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理。选民投票结束后程序自动显
编程统计候选人的得票数.设有3个候选人zhang.li.wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理.选民投票结束后程序自动显 ...
- 编程统计候选人的得票数。设有3个候选人zhang、li、wang(注意:候选人姓名不区分大小写,输入大写小写都对),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理。
编程统计候选人的得票数.设有3个候选人zhang.li.wang(注意:候选人姓名不区分大小写,输入大写小写都对),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理. ...
- C语言——结构体运用 编程统计候选人的得票数。设有3个候选人zhang、li、wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理。
编程统计候选人的得票数.设有3个候选人zhang.li.wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理.选民投票结束后程序自动显 ...
- 编程统计候选人的得票数。设有3个候选人,Li,Zhang,Fun。 要求输入投票总数n,然后每次输入一个得票的候选人的名字(区分大小写),若选民输错候选人姓名,则按废票处理。 选民投票结束后程序自动显
编程统计候选人的得票数.设有3个候选人,Li,Zhang,Fun. 要求输入投票总数n,然后每次输入一个得票的候选人的名字(区分大小写),若选民输错候选人姓名,则按废票处理. 选民投票结束后程序自动显 ...
- 对候选人得票的统计程序。设有3个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。
对候选人得票的统计程序.设有3个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果. #include"stdio.h" #define N 3 #include&q ...
- 7-7 选民投票 STL
7-7 选民投票 编程统计候选人的得票数.有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字(姓名最 ...
- 选民投票--统计候选人的得票数
编程统计候选人的得票数.有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字(姓名最长为9个字节),若 ...
- C语言编程题:选民投票
选民投票 分数 6 全屏浏览题目 切换布局 作者 刘仕筠 单位 成都信息工程大学 ...
最新文章
- Linux学习(十四)---大数据定制篇Shell编程
- 做CEO,一定要有“江湖感”
- ICLR 2021 | 使用CVAE学习干扰集,增强OOD以及对抗防御的能力
- SQL语句修改主键列
- 字符串匹配之KMP(KnuthMorrisPratt)算法(图解)
- python调用jar包的模块_使用 Python 的 JPype 模块调用 Jar 包
- 测试开发之缺陷报告上篇
- 基于 OpenCV 的图像阴影去除,你会吗?
- Jmail组件在C#中发送邮件代码:
- JAVA8免费下载安装(win10)
- 三、EXCEL复制数字到txt文件,存在空格
- 电子邮件营销新趋势-自动化
- 23位子网掩码是多少_子网掩码23位的是多少
- RabbitMQ面试要点
- Shell获取配置文件中一个字段的值
- 组件服务计算机卡死,wsappx进程占用系统资源过多导致电脑卡死的解决方法
- 学习笔记(11):Java小白修炼手册-一句话在Java中如何表达?快学Java字符串
- 互联网摸鱼日报(2022-11-29)
- android电话拨号器的使用
- html5 canvas 自定义画图裁剪图片
热门文章
- konva系列教程2:绘制图形
- rabbitmq修改端口
- 中央电大网考计算机基础试题,电大网考300道计算机应用基础试题(附答案)
- 前端4-2-10:Canvas与SVG之简介、对比总结
- WLAN-Web配置AP
- getparameter java_java中getAttribute和getParameter的区别
- 饥荒如何修改服务器人数,饥荒怎么扩展服务器人数 | 手游网游页游攻略大全
- (3)风色从零单排《C++ Primer》 重要的基本类型
- 魔兽世界无法连接语音聊天服务器,玩家感悟:你不知道的那个“上不了语音的人” - 178魔兽世界专区...
- AppCode3真的很不错