一日一题:第六题---成绩统计&单词分析

这篇具有很好参考价值的文章主要介绍了一日一题:第六题---成绩统计&单词分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

​作者:小妮无语
专栏:一日一题
🚶‍♀️✌️道阻且长,不要放弃✌️🏃‍♀️

​今天主要发现两个很好用的结构,想做个记录

1.成绩统计

题目描述·
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。

如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。

请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。

输入格式

第一行包含整数 N,表示操作数量。

接下来 N 行,每行包含一个操作指令,操作指令为 I x,Q x 中的一种。

输出格式
输入的第一行包含一个整数 n .(1≤n≤10^4 ),表示考试人数。接下来 n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数

输入样例:

7
80
92
56
74
88
100
0

输出样例:

71%
43%

代码

#include <iostream>
using namespace std;
int n,n1,n2;
int main()
{
  // 请在此输入您的代码
  cin>>n;
  int a=n;
  while(a--)
  {
    int x;
    scanf("%d",&x);
    // cout<<x;
    if(x>=60) n1++;
    if(x>=85) 
    {
      n2++;
      // cout<<x;
    }
  }
   int m1=float((n1+0.0)/(n+0.0))*100+0.5;
  int m2=float((n2+0.0)/(n+0.0))*100+0.5;
  // int m1=float((n1+0.0)/(n+0.0))*1000;
  // int m2=float((n2+0.0)/(n+0.0))*1000;
  // if(m1%10>=5) m1=m1/10+1;
  // else m1=m1/10;
  // if(m2%10>=5) m2=m2/10+1;
  // else m2=m2/10;
  printf("%d%\n%d%",m1,m2);
  return 0;
}

错误点

  1. 第一次写的只通过了四个数据,我又读题发现了“百分号前的部分 四舍五入保留整数”,如果直接除就下取整了
    第一次修改我添加了判断,以为及格和优秀率一定是小于1的所以要求百分比就要乘以100,现在要判断第三问是否可以进一(这里我没有考虑第四位进一的情况,但是还是通过了),所以我称了1000,然后取余看个位是否大于等于5便可以进一,然后再除10
  2. 我直接拿两个整数相除(n1/1<1)就直接归 0了,所以一定要给其中一个加个小数点,或者提前转换为浮点数,这里我选择了加(0.0)
    知识点
    当这个数的可以五入,呢加 0.5,就直接进一了
    如果这个数要舍弃,呢加上 0.5,也无济于事!!(看题解大佬写的,今天又学到了!)

2.单词分析

题目描述·
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。

现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。

输入格式
输入一行包含一个单词,单词只由小写英文字母组成。

对于所有的评测用例,输入的单词长度不超过 1000。
输出格式
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序最小的那个

第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。
输入样例:

longlonglongistoolong

输出样例:

o
6

代码

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int temp[30];
string s;
int m,l;
int main()
{
  // 请在此输入您的代码
  cin>>s;
  // cout<<s.size();
  for(int i=0;i<s.size();i++)
  {
    int x=s[i]-'a';
    // cout<<s[i];
    temp[x]++;
  }
  char r;
  for(int i=0;i<26;i++)
  {
    if(temp[i]>m)
    {
      m=temp[i];
      r=char(i+'a');
    }
  }
  
  cout<<r<<endl;
  // printf("%s\n",r);
  printf("%d",m);
  return 0;
}

错误点:刚开始没看到字典序最小,哭了,只过了几个数据,我还在好奇为撒?刚开始我还在想用不用map什么的,我一看题目说的只有小写字母,呢开辟不了不了多少数组,但是我还是很好奇map<char,int>可不可以写这个题,等过几天研究一下,今天累了。
知识点
字典序的概念,我的认识,谁在字典的排序最靠前谁的字典序最小
1 2 3 , 1 3 2 , 2 1 3 , 2 3 1 , 3 1 2 , 3 2 1
拿这个例子,上面便是字典序从小到大,排序的全排列
所以这个题的意思,如果最大的次数有好几个字母,呢么就按照字母表排顺序,谁在前面谁的字典序就小,所以刚开始,我在第一个for循环就想记录最大值和字母,没有考虑字典序,正确做法,等统计完所有字母出现的次数,然后遍历一遍、取最大次数的第一次出现的字母

欢迎来到一日一题的小菜鸟频道,睡不着就看看吧!
一日一题:第六题---成绩统计&单词分析文章来源地址https://www.toymoban.com/news/detail-407603.html

到了这里,关于一日一题:第六题---成绩统计&单词分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 力扣经典150题第六题:轮转数组问题

    1. 简介 本篇博客将讨论力扣经典150题中的轮转数组问题。给定一个整数数组 nums ,我们需要将数组中的元素向右轮转 k 个位置。 2. 问题描述 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,

    2024年04月13日
    浏览(29)
  • Python实践之Pandas的使用——分析统计学生期末成绩并绘图

    目录 一、实践要求 二、测试数据 18.student_score.csv文件:(以下是分别用记事本和Excel打开的数据,可自行粘贴到记事本或Excel上保存为csv文件) 三、代码实现 1.从18.student_score.csv文件中读取同学的成绩册,处理好缺失值。 输出的结果(print(df)): 2.将实验报告成绩从ABCD转

    2024年02月06日
    浏览(43)
  • 【代码随想录-Leetcode第六题:209. 长度最小的子数组】

    给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 参考【代码随想录】 示例 1: 示例 3: 提示: 1 = target = 109 1 = nums.length

    2024年02月12日
    浏览(43)
  • Python123:统计学生成绩、统计学生平均成绩与及格人数、成绩转换(C语言)

    1、统计学生成绩 题目 :本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则: 大于等于90分为A; 小于90且大于等于80为B; 小于80且大于等于70为C; 小于70且大于等于60为D; 小于60为E。 输入格式: 输入在第一行中给出

    2024年02月06日
    浏览(60)
  • 力扣每日一题79:单词搜索

    给定一个  m x n  二维字符网格  board  和一个字符串单词  word  。如果  word  存在于网格中,返回  true  ;否则,返回  false  。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不

    2024年02月07日
    浏览(43)
  • 每日一题——LeetCode1455.检查单词是否为句中其他单词的前缀

    方法一 js函数slice()  将字符串按空格符分割为单词数组,记searchWord的长度为n,分割每个单词的前n位看是否和searchWord匹配 消耗时间和内存情况: 方法二 双指针: 来自leetcode官方题解 链接:1455.检查单词是否为句中其他单词的前缀 使用 start 记录单词的起始,end记录单词结尾

    2024年02月19日
    浏览(55)
  • C语言7:输入若干个学生的成绩,统计出平均成绩

    在程序编辑区编写程序,给定程序功能是: 从键盘上输入若干个学生的成绩,统计出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。 例如输入: 70  80  90  -1 输出: ave =80.00 --------OUTPUT----------- 70.0 程序有两个空(1)、(2)需要补充完整。并将程序调试出所需的结果

    2024年02月06日
    浏览(45)
  • 统计射击比赛成绩

    给定一个射击比赛成绩单,包含多个选手若干次射击的成绩分数,请对每个选手按其最高3个分数之和进行降序排名,输出降序排名后的选手ID序列。 ① 一个选手可以有多个射击成绩的分数,且次序不固定。 ② 如果一个选手成绩少于3个,则认为选手的所有成绩无效,排名忽

    2024年02月07日
    浏览(42)
  • c++ 成绩统计

    Q: 有一个二维表格数据,它的值全部是整数,其中存储了若干个选手参与 5 分钟汉字输入比赛的成绩。数据中每一行是一条记录,每条记录包含两个整数,第 1 个整数为选手编号,它应该是一个 4 位整数;第 2 个整数是汉字输入比赛成绩,应该是一个小于等于 1000 的非负整

    2024年02月12日
    浏览(43)
  • 以实战学习pandas使用方式:统计考生成绩统计及分布

    老顾日常工作,是用不到 python 的,所以,老顾的 python 学习进度推进的非常缓慢,至今没用上 pandas 和 numpy,即便参加了新星计划艾派森的学习小组,也没什么动力去看这方面的内容。 结果,昨天在群里,有个小伙伴问老顾能不能帮忙做个数据统计。由于老顾最近准备开营做

    2024年02月03日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包