洛谷 P1598 垂直柱状图【字符串】
生活随笔
收集整理的這篇文章主要介紹了
洛谷 P1598 垂直柱状图【字符串】
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
寫一個(gè)程序從輸入文件中去讀取四行大寫字母(全都是大寫的,每行不超過72個(gè)字符),然后用柱狀圖輸出每個(gè)字符在輸入文件中出現(xiàn)的次數(shù)。嚴(yán)格地按照輸出樣例來安排你的輸出格式。
輸入輸出格式
輸入格式:
?
四行字符,由大寫字母組成,每行不超過72個(gè)字符
?
輸出格式:
?
由若干行組成,前幾行由空格和星號組成,最后一行則是由空格和字母組成的。在任何一行末尾不要打印不需要的多余空格。不要打印任何空行。
?
輸入輸出樣例
輸入樣例#1:?復(fù)制 THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG. THIS IS AN EXAMPLE TO TEST FOR YOUR HISTOGRAM PROGRAM. HELLO! 輸出樣例#1:?復(fù)制 *** ** * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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說明
每行輸出后面不允許出現(xiàn)多余的空格。
?
【分析】:注意數(shù)組要開大一點(diǎn)!一路掃過去,把所有單詞出現(xiàn)的次數(shù)記錄下來,然后模擬一個(gè)輸出。
【代碼】:
#include<cstdio> #include<bits/stdc++.h> #include<cstring> #include<algorithm> using namespace std; int cnt[500];//定義計(jì)數(shù)數(shù)組 string a; int main() {int i,j,n,maxn=0;//char a[200];for(i=0;i<4;i++){getline(cin,a);//gets讀入// n=strlen(a);for(j=0;j<a.length();j++)if(a[j]>='A'&&a[j]<='Z')cnt[a[j]-'A']++;//統(tǒng)計(jì)字符出現(xiàn)次數(shù) }for(i=0;i<26;i++)maxn=max(maxn,cnt[i]);//最多次數(shù)(最高柱狀圖)for(i=maxn;i>0;i--){for(j=0;j<26;j++)if(cnt[j]>=i)printf("* ");elseprintf(" ");//模擬,是可以輸出的就輸出*,否則跳過printf("\n");}//換行/*for(i=0;i<26;i++)printf("%c ",i+'A');//輸出a~z*/for(char i='A';i<'Z';i++)cout << i << " ";//輸出A-Y,后面都有一個(gè)空格cout << "Z";//輸出Z,后面沒有空格 } 模擬?
#include <iostream> #include <cstring> #include <map> using namespace std; int main() {string s;//輸入變量int i,j,len,max=0;char k;//len長度,max為最多數(shù)(高度)map<char,int> zm;//定義一個(gè)char到int的map變量,存儲(chǔ)字母出現(xiàn)個(gè)數(shù)for (k='A';k<='Z';k++) zm[k]=0;//A~Z分別設(shè)初值為0for (i=0;i<4;i++)//4行 {getline (cin,s);//讀取一行len=s.size();///求取長度for (j=0;j<len;j++) zm[s[j]]++;//每個(gè)字母個(gè)數(shù)加一 }for (k='A';k<='Z';k++) if (max<zm[k]) max=zm[k];//求高度for (;max;max--){for (k='A';k<='Z';k++) if (max<=zm[k]) cout<<"* ";else cout<<" ";//若該高度該字母達(dá)到,則輸出* ;否則輸出 ;cout<<endl;//換行 }for (k='A';k<='Z';k++) cout<<k<<' ';//看各位輸出都可復(fù)雜,直接這樣不就行了嗎(從A 到Z )return 0; } View Code 2?
轉(zhuǎn)載于:https://www.cnblogs.com/Roni-i/p/7730705.html
總結(jié)
以上是生活随笔為你收集整理的洛谷 P1598 垂直柱状图【字符串】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电大中专当兵要盖章找谁盖
- 下一篇: 敏捷冲刺每日报告一(Java-Team)