[洛谷P1598]垂直柱狀圖
阿新 • • 發佈:2018-06-16
tdi etc inline 空字符 -i 在哪裏 getchar() 輸出 size
準備一個二維\(char\)數組\(o\),用來預填寫好要輸出的字符,最後一並輸出
輸出前判斷一下每行最後一個非空字符在哪裏
具體看代碼
Code
#include <cstdio> #include <cstring> char ch,o[500][60]; int i,j,r,cnt[30]/*標字母出現次數*/,max; int main() { for (ch=getchar(); ch!=-1; ch=getchar()) // ch==-1代表讀到了輸入的末尾 if (ch >= ‘A‘ && ch <= ‘Z‘) // 如果讀到的是一個大寫字母 { i = ch-‘A‘; ++cnt[i]; // 統計每個字母出現了多少次 if (cnt[i] > max) max = cnt[i]; // 更新表格的最大高度 } memset(o, ‘ ‘, sizeof(o)); // 把數組o中的元素全置為空格 for (i=0; i<26; ++i) //預狀填輸出數組 { o[0][i*2] = ‘A‘+i; for (j=1; j<=cnt[i]; ++j) o[j][i*2] = ‘*‘; } for (i=max; i>=0; --i) //輸出數組 { for (r=50; o[i][r]==‘ ‘; --r); //求第i行最後一個非空字符在哪裏 for (j=0; j<=r; ++j) printf("%c", o[i][j]); printf("\n"); } }
[洛谷P1598]垂直柱狀圖