为啥gets()也不行,getline()也不行,那要怎么改!!!
查看原帖
为啥gets()也不行,getline()也不行,那要怎么改!!!
342874
刘奶奶喝水呢楼主2021/3/5 18:53
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
//看题解了!!!要不然对于输出一点思路也没有

int main()
{
    int num[26] = { 0 };
    int l, maxn = 0;
    char a[101];
    for (int i = 0; i < 4; i++) {
        getline(a);
        l = strlen(a);
        for (int j = 0; j < l; j++) {
            if (a[j] <= 'Z' && a[j] >= 'A') {
                num[a[j] - 'A']++;
            }
        }
    }

    for (int i = 0; i < 26; i++) {
        maxn = max(maxn, num[i]);
    }
    for (int i = maxn; i > 0; i--) {      //柱状图从上往下 每行分别输出
        for (int j = 0; j < 26; j++) {    //对于每一个字母而言
            //其中得加个判定:如果是最后一行就输出*或一个空格
            if (num[j] >= i) {
                if (j == 25) {
                    cout << "*";
                }
                else {
                    cout << "* ";
                }
            }
            else {
                if (j == 25) {
                    cout << " ";
                }
                else {
                    cout << "  ";
                }
               
            }
        }
        cout << endl;
    }
    for (int i = 0; i < 26; i++) {
        //其实这里也多输出了一个空格  但我懒得弄了 看看能不能过
        cout << (char)(i + 'A') << " ";   //这里百度了(否则不加(char)只会输出数字)
    }

    return 0;
}
2021/3/5 18:53
加载中...