• 洛谷 P1598 垂直柱状图


    链接:https://www.luogu.org/problemnew/show/P1598

    题目:

      题目描述

      写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过100个字符),然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出样例来安排你的输出格式。

      输入输出格式

      输入格式:

      四行字符,由大写字母组成,每行不超过100个字符

      输出格式:

      由若干行组成,前几行由空格和星号组成,最后一行则是由空格和字母组成的。在任何一行末尾不要打印不需要的多余空格。不要打印任何空行。

      输入输出样例

      输入样例#1: 
      THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
      THIS IS AN EXAMPLE TO TEST FOR YOUR
      HISTOGRAM PROGRAM.
      HELLO!
    
      输出样例#1:
                                  *
                                  *
              *                   *
              *                   *     *   *
              *                   *     *   *
      *       *     *             *     *   *
      *       *     * *     * *   *     * * *
      *       *   * * *     * *   * *   * * * *
      *     * * * * * *     * * * * *   * * * *     * *
      * * * * * * * * * * * * * * * * * * * * * * * * * *
      A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
    

      说明

      每行输出后面不允许出现多余的空格。

    思路:

      

      思路清晰,读取四行数据,检索出现次数,通过数组保存一气呵成,我这里读取输入用的是getline,我觉得会好一点。

      (但是这题我debug了半天,最后才发现我少空格。。。。。。)

    代码:

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 using namespace std;
     5 
     6 int word[27];
     7 
     8 int main()
     9 {
    10     int max=0;
    11     char a[105];
    12     for(int i=0;i<4;i++)
    13     {
    14         cin.getline(a,105);
    15         int n=strlen(a);
    16         for(int j=0;j<n;j++)
    17         {
    18             if(a[j]>='A'&&a[j]<='Z')
    19                 word[a[j]-'A']++;
    20         }
    21     }
    22     for(int i=0;i<26;i++)
    23         if(word[i]>max)
    24             max=word[i];
    25     for(int i=max;i>=1;i--)
    26     {
    27         for(int j=0;j<26;j++)
    28         {
    29             if(word[j]>=i)
    30                 cout<<"* ";
    31             else
    32                 cout<<"  ";
    33         }
    34         cout<<endl;
    35     }
    36     for(int i=0;i<26;i++)
    37         cout<<(char)('A'+i)<<" ";
    38     return 0;
    39 } 

      

  • 相关阅读:
    微信小程序捕获async/await函数异常实践
    从微信小程序开发者工具源码看实现原理(四)-
    从微信小程序开发者工具源码看实现原理(二)-
    从微信小程序开发者工具源码看实现原理(三)-
    从微信小程序开发者工具源码看实现原理(一)-
    webpack生成的css文件background-image url图片无法加载
    ubuntu创建快捷方式
    docker 安装常用数据库
    MySQL order by limit 分页数据重复问题
    docker安装redis
  • 原文地址:https://www.cnblogs.com/blogxjc/p/11156586.html
Copyright © 2020-2023  润新知