zoukankan      html  css  js  c++  java
  • Vertical Histogram

    Description

    Write a program to read four lines of upper case (i.e., all CAPITAL LETTERS) text input (no more than 72 characters per line) from the input file and print a vertical histogram that shows how many times each letter (but not blanks, digits, or punctuation) appears in the all-upper-case input. Format your output exactly as shown.

    Input

    * Lines 1..4: Four lines of upper case text, no more than 72 characters per line.

    Output

    * Lines 1..??: Several lines with asterisks and spaces followed by one line with the upper-case alphabet separated by spaces. Do not print unneeded blanks at the end of any line. Do not print any leading blank lines.

    Sample Input

    THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
    THIS IS AN EXAMPLE TO TEST FOR YOUR
    HISTOGRAM PROGRAM.
    HELLO!
    

    Sample Output

                                *
                                *
            *                   *
            *                   *     *   *
            *                   *     *   *
    *       *     *             *     *   *
    *       *     * *     * *   *     * * *
    *       *   * * *     * *   * *   * * * *
    *     * * * * * *     * * * * *   * * * *     * *
    * * * * * * * * * * * * * * * * * * * * * * * * * *
    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 <string>
    #include <string.h>
    using namespace std;
    int main()
    {int i,j;
    char a[4][72];
    for(i=0;i<4;i++)
    gets(a[i]);
    int b[26];
    memset(b,0,sizeof(b));
    for(i=0;i<4;i++)
    for(j=0;j<strlen(a[i]);j++)
    switch(a[i][j])
    {case'A':b[0]++;break;
    case'B':b[1]++;break;
    case'C':b[2]++;break;
    case'D':b[3]++;break;
    case'E':b[4]++;break;
    case'F':b[5]++;break;
    case'G':b[6]++;break;
    case'H':b[7]++;break;
    case'I':b[8]++;break;
    case'J':b[9]++;break;
    case'K':b[10]++;break;
    case'L':b[11]++;break;
    case'M':b[12]++;break;
    case'N':b[13]++;break;
    case'O':b[14]++;break;
    case'P':b[15]++;break;
    case'Q':b[16]++;break;
    case'R':b[17]++;break;
    case'S':b[18]++;break;
    case'T':b[19]++;break;
    case'U':b[20]++;break;
    case'V':b[21]++;break;
    case'W':b[22]++;break;
    case'X':b[23]++;break;
    case'Y':b[24]++;break;
    case 'Z':b[25]++;break;
    default:break;}
    int m=0;
    for(i=0;i<26;i++)
    if(m<b[i])m=b[i];
    
    
    for(i=m;i>0;i--)
    {for(j=0;j<25;j++)
    
    
    {if(b[j]>=i)
    cout<<'*'<<" ";
    else
    cout<<"  ";
    }
    if(b[25]>=i)
    cout<<'*';
    else
    cout<<" ";
    
    cout<<endl;
    }
    for(i=65;i<90;i++)
    cout<<char(i)<<" ";
    cout<<'Z'<<endl;
    
    return 0;
    
    }
     
  • 相关阅读:
    不用加减乘除做加法
    数组中只出现一次的数字
    平衡二叉树
    二叉树的深度
    两个链表的第一个公共结点
    连续子数组的最大和
    最小的K个数
    数组中出现次数超过一半的数字
    二叉搜索树与双向链表
    复杂链表的复制
  • 原文地址:https://www.cnblogs.com/lengxia/p/4387849.html
Copyright © 2011-2022 走看看