Openjudge-NOI题库-出书最多
- 描述
-
假定图书馆新进了m(10 ≤ m ≤ 999)本图书,它们都是由n(2 ≤ n ≤ 26)个作者独立或相互合作编著的。假设m本图书编号为整数(1到999),作者的姓名为字母('A'到'Z'),请根据图书作者列表找出参与编著图书最多的作者和他的图书列表。
- 输入
- 第一行为所进图书数量m,其余m行,每行是一本图书的信息,其中第一个整数为图书编号,接着一个空格之后是一个由大写英文字母组成的没有重复字符的字符串,每个字母代表一个作者。输入数据保证仅有一个作者出书最多。
- 输出
-
输出有多行:
第一行为出书最多的作者字母;
第二行为作者出书的数量;
其余各行为作者参与编著的图书编号(按输入顺序输出)。 - 样例输入
-
11 307 F 895 H 410 GPKCV 567 SPIM 822 YSHDLPM 834 BXPRD 872 LJU 791 BPJWIA 580 AGMVY 619 NAFL 233 PDJWXK
- 样例输出
-
P 6 410 567 822 834 791 233
- 来源:北京大学 计算概论 06 心理及信管 期末考试思路:这题呢,蛮简单,可以运用结构体,统计每本书中作者最多的是哪位,再循环判断出了哪些书,输出即可。代码如下:
1 #include <stdio.h> 2 #include <string.h> 3 struct book 4 { 5 int num; 6 char writer[300]; 7 }; 8 int main() 9 { 10 int m,i,j; 11 int xiabiao;//出书最多作者下标 12 int large;//出书最多作者出的书 13 char large2;//出书最多作者名字 14 int flag[26];//统计每个作者名字出现的个数 15 struct book a[999];//结构体,存储编号,作者姓名 16 scanf("%d",&m); 17 for(i=0;i<26;i++)//初始化 18 { 19 flag[i]=0; 20 } 21 for(i=0;i<m;i++)//输入编号、作者 22 { 23 scanf("%d%s",&a[i].num,&a[i].writer); 24 } 25 for(i=0;i<m;i++)//统计每个作家名字出现次数 26 { 27 for(j=0;j<strlen(a[i].writer);j++) 28 { 29 flag[a[i].writer[j]-65]++; 30 } 31 } 32 large=flag[0]; 33 for(i=0;i<26;i++)//找出出书最多的作家 34 { 35 if(flag[i]>large)//如果发现一个比目前还要大的,更新 36 { 37 xiabiao=i; 38 large=flag[i]; 39 } 40 } 41 large2=xiabiao+65; 42 printf("%c\n%d\n",large2,large);//输出出书最多作家名字、著作篇数 43 for(i=0;i<m;i++) 44 { 45 for(j=0;j<strlen(a[i].writer);j++) 46 { 47 if(a[i].writer[j]==large2) 48 { 49 printf("%d\n",a[i].num); 50 break; 51 } 52 } 53 } 54 return 0; 55 }
转载于:https://www.cnblogs.com/geek-007/p/4940897.html
Openjudge-NOI题库-出书最多相关推荐
- OpenJudge NOI题库 1.5编程基础之循环控制
OpenJudge NOI题库 1.5编程基础之循环控制 OpenJudge - OpenJudge - 题目 1.5_01求平均年龄 1.5_01求平均年龄_哔哩哔哩_bilibili 1.5_02 ...
- OpenJudge NOI题库 1.7 编程基础之字符串
OpenJudge NOI题库 1.7 编程基础之字符串 OpenJudge - OpenJudge - 题目 1.7_01统计数字字符个数 1.7_01统计数字字符个数_哔哩哔哩_bilibili ...
- OpenJudge NOI题库 1.1 编程基础之输入输出
OpenJudge NOI题库 1.1编程基础之输入输出 OpenJudge - OpenJudge - 题目 1.1_01:Hello, World!_2017-03-19(C++语言) 1.1_0 ...
- OpenJudge NOI题库 1.4 编程基础之逻辑表达式与条件分支
OpenJudge NOI题库 1.4 编程基础之逻辑表达式与条件分支 OpenJudge - OpenJudge - 题目 啊哈C语言 第11讲 4.1.4_01判断数正负 啊哈C语言 第11讲 4 ...
- Openjudge NOI题库 ch0111/10 河中跳房子|NOIP2015 day2 stone
这题同时也是NOIP2015 D2T1 跳石头 stone 原题. 总时间限制: 1000ms 内存限制: 65536kB 描述 每年奶牛们都要举办各种特殊版本的跳房子比赛,包括在河里从一个岩石跳到另 ...
- Openjudge NOI题库1.11编程基础之二分查找04 网线管理
总时间限制: 1000ms 内存限制: 65536kB 描述 仙境的居民们决定举办一场程序设计区域赛.裁判委员会完全由自愿组成,他们承诺要组织一次史上最公正的比赛.他们决定将选手的电脑用星形拓扑 ...
- Openjudge NOI题库 ch0111/04 网线管理
这篇主要是讲讲细节 总时间限制: 1000ms 内存限制: 65536kB 描述 仙境的居民们决定举办一场程序设计区域赛.裁判委员会完全由自愿组成,他们承诺要组织一次史上最公正的比赛.他们决定将选手的 ...
- Openjudge NOI题库1.7编程基础之字符串 34:回文子串
总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个字符串,输出所有长度至少为2的回文子串. 回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccde ...
- OpenJudge NOI题库1.1答案
我是一位编程爱好者,大家可以看我的代码进行学习,这些代码都是通过测试的.(仅供参考) 01.Hello, World! #include<bits/stdc++.h> using name ...
- NOI题库 scratch题解(部分)
1.3编程基础之算术表达式与顺序执行 01 A+B问题 1.3编程基础之算术表达式与顺序执行 01 A+B问题_dllglvzhenfeng的博客-CSDN博客 1.3编程基础之算术表达式与顺序执行 ...
最新文章
- float js 正则 验证_使用HTML和Vuejs进行表单验证
- Python面向对象编程:入门类和对象
- 挑灯熬夜看《Build 2015 Keynote》图文笔记
- 添加MSDN搜索的正确方法
- python2异步编程_最新Python异步编程详解
- 现代软件工程系列 学生精彩文章(7) 宝贵的教训
- java框架异常怎么处理_java异常处理与处理框架-笔记
- 4列变成5列 datatable_云南美食界“5巨头”,谁才是NO.1?你家乡的那道菜也在列...
- 盒子模型实验报告总结_真刀真枪模块化(2)——图解Service模型
- PHP集成环境Visual-AMP
- 远期债券收益率期望曲率调整
- 世界流调——Gary
- LPC1768以太网控制器
- Android 一款十分简洁、优雅的日记APP
- matplotlib给某一个点添加注释
- TED听后笔记:如何理解并克服拖延症
- RegExp (regular expression) object
- matlab填充封闭包含区域,求指导matlab怎么填充曲线构成的封闭区域
- 【深度强化学习】DDPG算法
- 前端从头搭建个人博客