1. 程式人生 > >洛谷—— P1598 垂直柱狀圖

洛谷—— P1598 垂直柱狀圖

color std pri jump 字母 clu names badge get

P1598 垂直柱狀圖

題目描述

寫一個程序從輸入文件中去讀取四行大寫字母(全都是大寫的,每行不超過72個字符),然後用柱狀圖輸出每個字符在輸入文件中出現的次數。嚴格地按照輸出樣例來安排你的輸出格式。

輸入輸出格式

輸入格式:

四行字符,由大寫字母組成,每行不超過72個字符

輸出格式:

由若幹行組成,前幾行由空格和星號組成,最後一行則是由空格和字母組成的。在任何一行末尾不要打印不需要的多余空格。不要打印任何空行。

輸入輸出樣例

輸入樣例#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<cstdio>
#include<cstring>
#include<iostream>
#define N 1010
using namespace std;
char ch[N];
int l,maxn,s[N];
int main()
{
    for(int i=1;i<=4;i++)
    {
        gets(ch+1);
        l=strlen(ch+1);
        for(int i=1;i<=l;i++)
         s[ch[i]
-A+1]++; } for(int i=1;i<=26;i++) maxn=max(maxn,s[i]); for(int i=maxn;i>=1;i--) { for(int j=1;j<=26;j++) if(s[j]<i) printf(" "); else printf("* "); printf("\n"); } for(int i=0;i<26;i++) cout<<char(i+A)<<" "; return 0; }

洛谷—— P1598 垂直柱狀圖