题目 1558: 色盲的民主
题目
n个色盲聚在一 起,讨论一块布的颜色。尽管都是色盲,却盲得各不相同。每个人都有自己的主张,争论不休。最终,他们决定采取民主投票的方式决定布的颜色,不管布同不同 意。某种颜色用字符串表示(字符串为颜色单词或词组,也就是可能有被空格隔开的两个单词组成的颜色词组),只要字符串不同,程序即判断颜色不同。现在给出 这n个人所选择的颜色,输出最有可能的颜色(也就是获得投票最多的颜色),如果有多个颜色获得了最多的投票,则将它们按字典序分行全部输出。
输入
第一行一个正整数n,表示色盲的人数
接下来n行,每行一句话
数据规模和约定
n< =1000
颜色单词最多20个字符,只包含小写字母或者空格
输出
若干行,获得投票最多的颜色,按字典序输出
样例输入
5
red
blue
black
black
blue
样例输出
black
blue
解题思路
首先依次读入色盲的“判断”,每读入一次,便记录在结构体数组中(如果是新出现的颜色,加入结构体数组;如果是已经出现过的颜色,则该颜色的被投票次数增加一)。最后,按要求排序后输出。
易错点
- 读入数字n时,由于下一行需要用fgets读入可能含有空格的字符串,因此,
scanf("%d\n",&n);
(’\n’不要落下,否则会造成字符串比对不一致的问题); - 由于fgets会读入行末的’\n’,因此对’\n’需要进行删除,但最后一行字符串不含有’\n’,因此不需要此操作,否则会删除有效字母。
代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct cloth{char name[22];//颜色int votes;//被投票的次数
};int cmp_bs(const void *a, const void *b){char * c = (char *)a;struct cloth d = *(struct cloth *)b;return strcmp(c,d.name);
}int cmp1(const void *a, const void *b){struct cloth c = *(struct cloth *)a;struct cloth d = *(struct cloth *)b;return strcmp(c.name,d.name);//相同票数按字典序输出,升序
}int cmp(const void *a, const void *b){struct cloth c = *(struct cloth *)a;struct cloth d = *(struct cloth *)b;if (c.votes!=d.votes)return d.votes-c.votes;//降序elsereturn strcmp(c.name,d.name);//相同票数按字典序输出,升序
}int main()
{int i,n,num = 0;char temp[22];scanf("%d\n",&n);struct cloth C[n];struct cloth *pc;for (i=0;i<n;i++){fgets(temp,22,stdin);//可能包含空格if (i!=(n-1))temp[strlen(temp)-1] = '\0';//去除\nqsort(C,num,sizeof(C[0]),cmp1);pc = (struct cloth *)bsearch(temp,C,num,sizeof(C[0]),cmp_bs);if (pc==NULL)//找不到对应的{strcpy(C[num].name,temp);C[num++].votes = 1;}else{(*pc).votes++;}}qsort(C,num,sizeof(C[0]),cmp);for (i=0;i<num;i++){if (C[i].votes!=C[0].votes)break;printf("%s\n",C[i].name);}return 0;
}
题目 1558: 色盲的民主相关推荐
- 问题 : 色盲的民主
题目描述 算法提高 色盲的民主 时间限制:1.0s 内存限制:256.0MB 色盲的民主 问题描述 n个色盲聚在一 起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同 ...
- 算法提高 色盲的民主
算法提高 色盲的民主 n个色盲聚在一 起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张,争论不休.最终,他们决定采取民主投票的方式决定布的颜色,不管布同不同 意.某种颜色用字符 ...
- 色盲java_Java实现 蓝桥杯VIP 算法提高 色盲的民主
算法提高 色盲的民主 时间限制:1.0s 内存限制:256.0MB 色盲的民主 问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张,争论不休.最终,他 ...
- JAVA 蓝桥杯 算法提高 色盲的民主
JAVA 蓝桥杯 算法提高 色盲的民主 资源限制 时间限制:1.0s 内存限制:256.0MB 色盲的民主 问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自 ...
- 蓝桥杯 算法提高 色盲的民主
算法提高 色盲的民主 时间限制:1.0s 内存限制:256.0MB 色盲的民主 问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张, ...
- 蓝桥杯 色盲的民主 c++实现
蓝桥杯 色盲的民主 问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张,争论不休.最终,他们决定采取民主投票的方式决定布的颜色,不管布同不同意.某种颜色用 ...
- 蓝桥杯 ADV-130 算法提高 色盲的民主
问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张,争论不休.最终,他们决定采取民主投票的方式决定布的颜色,不管布同不同意.某种颜色用字符串表示(字符串为 ...
- 关于 色盲的民主 的解题思路
Description n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张,争论不休.最终,他们决定采取民主投票的方式决定布的颜色,不管布同不同意.某种颜色用字符串 ...
- arm板色盲检测项目C语言,[蓝桥杯][算法提高VIP]色盲的民主 (C语言代码)答案没发现问题,过不了,先把代码放这,以后再改...
解题思路: 注意事项: 参考代码: #include #include int main() { char a[21]={0},b[1001][21]={0}; int n,j,i,c[1001]={ ...
最新文章
- c++ 求四边形面积和周长_C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少?...
- [HTML代码]会移动的文字(Marquee)
- Py之GUI:Python下各种GUI(图形用户界面)简介、使用优缺点对比
- SparkSQL之thriftserver/beeline的使用
- pytorch保存模型时报错***object has no attribute 'state_dict'
- 前端组件化和模块化最大的区别是什么_7招提升你的前端开发效率
- 51单片机直流电机调速
- 深夜不睡的我爬取一下美女照片!!!哈哈!!来吧,刺激磁刺激!!!
- java 链式调用_Java链式调用-Builder模式
- 华为认证的考试费用和重认证
- linux美元符号进入井号,MyBatis中井号与美元符号的区别
- windows c语言 创建目录,C语言创建删不掉的文件夹
- Mysql数据库——高阶语句(上)
- [图像处理-1]:颜色中英文对照表 颜色名字 色彩名称
- 全新 Google Pixel Watch 重磅上线 | 着手为 Wear OS 构建应用!
- Thinkphp5.1实现发送邮箱验证码
- 阿里云虚拟主机,免费用
- ORACLE 10g 64位下载地址
- 【Python_PyQtGraph 学习笔记(四)】基于PyQtGraph设置槽函数,实现保存图片到本地的功能
- CentOS7 安装WPS: libGLU.so.1()
热门文章
- 转贴:不要迷恋蜂蜜,虽然它有美好的传说
- linux 在指定行后写入文件内容,linux命令行下将指定的几行内容写入到一个文件中...
- web前端逃坑指南------H5及微信中JavaScript唤起app的解决方案callapp-lib
- Floodlight官方文档(一):floodlight架构
- 用python定时给女友发天气预报并给自己弹窗
- BUAA-2023软件工程团队项目——代码管理
- 古代35才女点评:才女美女尽化灰,遍觅故纸堆
- 从 CryptoKitties 到 Flow:Dapper Labs 如何成为最具影响力的 NFT 开发商
- 「MICCAI 2018」Reading Notes
- 直播APP开发完成后,如何接入短信验证码服务