垂直柱状图(模拟+字符串)

    科技2022-07-11  124

    题目描述

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

    输入格式

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

    输出格式

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

    输入输出样例
    输入
    THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG. THIS IS AN EXAMPLE TO TEST FOR YOUR HISTOGRAM PROGRAM. HELLO! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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<cstdio> #include<cstring> #include<algorithm> using namespace std; int cp[26];//计数数组 int main() { int i,j,n,maxn=0; char a[110]; for(int i=0;i<4;i++) { gets(a); n=strlen(a); for(j=0;j<n;j++) { if(a[j]>='A'&&a[j]<='Z')//统计字符出现次数 { cp[a[j]-'A']++; } } } for(int i=0;i<26;i++) { maxn=max(maxn,cp[i]); } for(i=maxn;i>0;i--) { for(int j=0;j<26;j++) { if(cp[j]>=i) { cout<<"* "; } else { cout<<" "; } } cout<<endl; } for(i=0;i<26;i++) { printf("%c ",i+'A'); } return 0; }
    Processed: 0.010, SQL: 8