垂直柱状图

其实这道题输出上有点恶心,本蒟蒻只能这样做,神犇们勿喷

#include <bits/stdc++.h>

using namespace std;
int main() { char n[161]; int a[27]={0},max=-2147483648; while(gets(n))//统计字母出现次数 { for(int i=0;i<strlen(n);i++) if(n[i]!=' ') a[n[i]-'A']++; } for(int i='A'-'A';i<='Z'-'A';i++)//统计最大值(在打印时优先打) if(a[i]>max) max=a[i]; int max2=max;//备份*1 for(int i=max2;i>=1;i--){//从输出的最高行向下打印 for(char j='A'-'A';j<='Z'-'A';j++){ if(a[j]-max>=0)//如果做大出现次数达到 cout<<"* ";//输出一个* else cout<<" "; } max--; cout<<endl; } for(char i='A';i<='Z';i++)//打印A到Z字符 cout<<i<<" "; return 0; }

猜你喜欢

转载自www.cnblogs.com/jr-ag/p/9067742.html
今日推荐