zoukankan      html  css  js  c++  java
  • 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
    

    说明/提示

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

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    
    const int N = 26,M = 110;
    int main(){
    	char a[M];
    	int aa[N];
    	memset(aa,0,sizeof aa);//这个置零搞了我好一会儿,这里不置为0,判断最大次数会有问题
    	for(int i = 0;i < 4;i++){
    		gets(a);
    		int n = strlen(a);
    		for(int j = 0;j < n;j++)	
    			if(a[j] >='A' && a[j]<='Z'){
    				int c;
    				c = a[j] - 'A';
    				aa[c]++;
    			}
    	}
    	int maxn = 0;
    	for(int i = 0;i < 26;i++){
    		maxn = max(maxn,aa[i]);//找出出现次数最多的
    	}
    
    	for(int i = maxn;i > 0;i--)//从最大的情况往下输出
    	{
    		for(int j = 0;j < 26;j++)
    		{
    			if(aa[j] >= i) cout << "* ";//如果当前的次数大于的等于我们的i就*,也就是一个aa[j]可能会被判断很多遍
    			else cout << "  ";
    		}
    		puts("");
    	}	
    
    	for(int i = 0;i < 26;i++) printf("%c ",i + 'A');
    	return 0;
    }
    

      

  • 相关阅读:
    Linux下安装nginx
    MySQL基础
    win10 安装MySQL 5.7.27
    Java IO之File
    java并发编程之ThreadLocal
    原生JS 的60秒倒计时!
    vueX 配合路由导航配置动态路由
    JS获取 当前时间是本年的第几天? 第几周?
    vue书写echarts 100px大小问题
    VUE 父组件与子组件双向数据绑定的方法 做弹框绑定列表页数据的举例
  • 原文地址:https://www.cnblogs.com/luyuan-chen/p/11670300.html
Copyright © 2011-2022 走看看