百練2800:垂直直方圖題解
阿新 • • 發佈:2019-01-07
2800:垂直直方圖
- 總時間限制:
- 1000ms
- 記憶體限制:
- 65536kB
- 描述
-
輸入4行全部由大寫字母組成的文字,輸出一個垂直直方圖,給出每個字元出現的次數。注意:只用輸出字元的出現次數,不用輸出空白字元,數字或者標點符號的輸出次數。
- 輸入
- 輸入包括4行由大寫字母組成的文字,每行上字元的數目不超過80個。
- 輸出
- 輸出包括若干行。其中最後一行給出26個大寫英文字母,這些字母之間用一個空格隔開。前面的幾行包括空格和星號,每個字母出現幾次,就在這個字母的上方輸出一個星號。注意:輸出的第一行不能是空行。
- 樣例輸入
-
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
- 來源
- 翻譯自USACO 2003 February Orange的試題。
- 檢視
- 提交
- 統計
- 提示
- 提問
-
- 程式碼:
#include<cstdio> #include<cstring> using namespace std; int a[26],max = 0; char str[100]; int main(){ for(int i = 0; i < 4; ++i){ fgets(str,100,stdin); for(int j = 0; str[j] != '\0'; ++j){ if(str[j] >= 'A' && str[j] <= 'Z'){ a[str[j] - 'A'] ++; if(a[str[j] - 'A'] > max) max = a[str[j] - 'A']; } } } for(int i = max; i > 0; i--){ for(int j = 0; j < 26; ++j){ if(a[j] >= i) printf("* "); else printf(" "); } putchar('\n'); } puts("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"); return 0; }