持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第5天,点击查看活动详情
1、写在前面
大家好,我是翼同学,这里是【水滴计划 | 刷题日志】
每日两题,拒绝摆烂。
2、内容
2.1、单词计数
(1) 描述
给定一个英语单词,要求找到出现最多的字母以及出现的次数。
- 输入描述:
- 输入一行,只包含一个单词(单词由小写英文字母组成,长度不超过1000)
- 输出描述:
- 输出两行,第一行包含一个英文字母,即单词中出现得最多的字母,如果有多个字母出现的次数相等,输出字典序最小的那个。第二行包含一个整数,表示该字母出现的次数。
(2) 举例
- 输入
happy
- 输出
p
2
- 输入
possessions
- 输出
s
5
(3) 解题
C++解题:
#include <iostream>
using namespace std;
int main()
{
int wordCount[26] = {0}; // 数组可存放每个字母出现的次数
char ch; // 用于获取字符
while( (ch=getchar()) != '\n' ) {
// 对每个字母对应的数组元素,自增加一
wordCount[ch-'a']++;
}
int max = 0; // 表示大值的索引
for(int i = 1; i<26; i++) {
// 从数组的第一个元素开始,依次比较,得出最大值的索引值 max
if( wordCount[i] > wordCount[max] ) {
max = i;
}
}
// 最后,输出结果:
cout << (max+'a') << '\n' << wordCount[max]);
return 0;
}
2.2、成绩统计
(1) 描述
现有一场考试,需计算及格率以及优秀率。
备注:学生得分范围是,并且分数大于等于属于及格,大于等于优秀。
- 输入描述:
- 输入的第一行表示考试人数。(其中)
- 其后输出的行表示每个学生的得分情况。
- 输出描述:
- 输出两行,第一行表示及格率,第二行表示优秀率。用百分数表示(百分号前的部分应四舍五入,保留整数)
(2) 举例
- 输入
5
46
79
91
59
76
- 输出
60%
20%
(3) 解题
C++解题:
#include <iostream>
using namespace std;
int main()
{
int number = 0;
cin >> number; // 获取考试人数
int jige = 0, youxiu = 0;
int data; // 获取学生成绩
while(cin>>data) {
// 获取及格人数
if(data >= 60) {
jige++;
}
// 获取优秀人数
if(data >= 85) {
youxiu++;
}
}
// 最后格式化输出:
printf("%.0f%%\n",jige*100.0/number);
printf("%.0f%%\n",youxiu*100.0/number);
return 0;
}
3、写在最后
好了,今天刷题就到这里,明天再来。