题目

n个色盲聚在一 起,讨论一块布的颜色。尽管都是色盲,却盲得各不相同。每个人都有自己的主张,争论不休。最终,他们决定采取民主投票的方式决定布的颜色,不管布同不同 意。某种颜色用字符串表示(字符串为颜色单词或词组,也就是可能有被空格隔开的两个单词组成的颜色词组),只要字符串不同,程序即判断颜色不同。现在给出 这n个人所选择的颜色,输出最有可能的颜色(也就是获得投票最多的颜色),如果有多个颜色获得了最多的投票,则将它们按字典序分行全部输出。

输入
第一行一个正整数n,表示色盲的人数
接下来n行,每行一句话

数据规模和约定
n< =1000
颜色单词最多20个字符,只包含小写字母或者空格

输出
若干行,获得投票最多的颜色,按字典序输出

样例输入

5
red
blue
black
black
blue

样例输出

black
blue

解题思路

首先依次读入色盲的“判断”,每读入一次,便记录在结构体数组中(如果是新出现的颜色,加入结构体数组;如果是已经出现过的颜色,则该颜色的被投票次数增加一)。最后,按要求排序后输出。

易错点

  1. 读入数字n时,由于下一行需要用fgets读入可能含有空格的字符串,因此,scanf("%d\n",&n);(’\n’不要落下,否则会造成字符串比对不一致的问题);
  2. 由于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. 问题 : 色盲的民主

    题目描述 算法提高  色盲的民主    时间限制:1.0s     内存限制:256.0MB        色盲的民主 问题描述 n个色盲聚在一  起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同 ...

  2. 算法提高 色盲的民主

    算法提高 色盲的民主 n个色盲聚在一 起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张,争论不休.最终,他们决定采取民主投票的方式决定布的颜色,不管布同不同 意.某种颜色用字符 ...

  3. 色盲java_Java实现 蓝桥杯VIP 算法提高 色盲的民主

    算法提高 色盲的民主 时间限制:1.0s 内存限制:256.0MB  色盲的民主 问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张,争论不休.最终,他 ...

  4. JAVA 蓝桥杯 算法提高 色盲的民主

    JAVA 蓝桥杯 算法提高 色盲的民主 资源限制 时间限制:1.0s 内存限制:256.0MB  色盲的民主 问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自 ...

  5. 蓝桥杯 算法提高 色盲的民主

    算法提高 色盲的民主   时间限制:1.0s   内存限制:256.0MB       色盲的民主 问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张, ...

  6. 蓝桥杯 色盲的民主 c++实现

    蓝桥杯 色盲的民主 问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张,争论不休.最终,他们决定采取民主投票的方式决定布的颜色,不管布同不同意.某种颜色用 ...

  7. 蓝桥杯 ADV-130 算法提高 色盲的民主

    问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张,争论不休.最终,他们决定采取民主投票的方式决定布的颜色,不管布同不同意.某种颜色用字符串表示(字符串为 ...

  8. 关于 色盲的民主 的解题思路

    Description n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张,争论不休.最终,他们决定采取民主投票的方式决定布的颜色,不管布同不同意.某种颜色用字符串 ...

  9. arm板色盲检测项目C语言,[蓝桥杯][算法提高VIP]色盲的民主 (C语言代码)答案没发现问题,过不了,先把代码放这,以后再改...

    解题思路: 注意事项: 参考代码: #include #include int main() { char a[21]={0},b[1001][21]={0}; int n,j,i,c[1001]={ ...

最新文章

  1. c++ 求四边形面积和周长_C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少?...
  2. [HTML代码]会移动的文字(Marquee)
  3. Py之GUI:Python下各种GUI(图形用户界面)简介、使用优缺点对比
  4. SparkSQL之thriftserver/beeline的使用
  5. pytorch保存模型时报错***object has no attribute 'state_dict'
  6. 前端组件化和模块化最大的区别是什么_7招提升你的前端开发效率
  7. 51单片机直流电机调速
  8. 深夜不睡的我爬取一下美女照片!!!哈哈!!来吧,刺激磁刺激!!!
  9. java 链式调用_Java链式调用-Builder模式
  10. 华为认证的考试费用和重认证
  11. linux美元符号进入井号,MyBatis中井号与美元符号的区别
  12. windows c语言 创建目录,C语言创建删不掉的文件夹
  13. Mysql数据库——高阶语句(上)
  14. [图像处理-1]:颜色中英文对照表 颜色名字 色彩名称
  15. 全新 Google Pixel Watch 重磅上线 | 着手为 Wear OS 构建应用!
  16. Thinkphp5.1实现发送邮箱验证码
  17. 阿里云虚拟主机,免费用
  18. ORACLE 10g 64位下载地址
  19. 【Python_PyQtGraph 学习笔记(四)】基于PyQtGraph设置槽函数,实现保存图片到本地的功能
  20. CentOS7 安装WPS: libGLU.so.1()

热门文章

  1. 转贴:不要迷恋蜂蜜,虽然它有美好的传说
  2. linux 在指定行后写入文件内容,linux命令行下将指定的几行内容写入到一个文件中...
  3. web前端逃坑指南------H5及微信中JavaScript唤起app的解决方案callapp-lib
  4. Floodlight官方文档(一):floodlight架构
  5. 用python定时给女友发天气预报并给自己弹窗
  6. BUAA-2023软件工程团队项目——代码管理
  7. 古代35才女点评:才女美女尽化灰,遍觅故纸堆
  8. 从 CryptoKitties 到 Flow:Dapper Labs 如何成为最具影响力的 NFT 开发商
  9. 「MICCAI 2018」Reading Notes
  10. 直播APP开发完成后,如何接入短信验证码服务