第一个与第五个WA,下载查看后第一个测试点的答案一致,实在是找不到错误
查看原帖
第一个与第五个WA,下载查看后第一个测试点的答案一致,实在是找不到错误
726161
blueleaf楼主2022/10/21 17:56
#include <bits/stdc++.h>

using namespace std;

int main() {
    string s[4];
    for(int i = 0 ; i  < 4 ; i++){//输入元素
        getline(cin,s[i]);
    }
    int arr[26] = {0};//字母出现次数的数组
    int max = 0;//找最大值以便下面开辟空间
    for(int i = 0 ; i < 4 ; i++){
        for(int j = 0 ; j < s[i].size() ; j++){
            if (s[i][j] >= 'A' && s[i][j] <= 'Z'){
                arr[s[i][j]-'A']++;
                if(arr[s[i][j]-'A'] > max){
                    max = arr[s[i][j]-'A'];
                }
            }
        }
    }//arr数组存数字数量
    char tank[max][26];//输出的表
    for(int i = 0 ; i < 26 ; i++){
        if(arr[i] > 0)
            for(int j = max - 1 ; j >= 0 ; j--){
                tank[j][i] = '*';
                arr[i]--;
                if(arr[i] == 0)
                    break;
            }

    }

    for(int i = 0 ; i < max ; i++){
        for(int j = 0 ; j < 26 ; j++){
            if(tank[i][j] != '*'){
                tank[i][j] = ' ';
            }
        }
    }//补' '

    for(int i = 0 ; i < max ; i++){//打印
        for(int j = 0 ; j < 26 ; j++){
            if(j== 25){
                cout<<tank[i][j];
            }
            else
            cout<<tank[i][j]<<" ";
        }
        cout<<endl;
    }
    char ch = 'A';
    for(int i = 0 ; i < 26 ; i++){
        if(i == 25){
            cout<<ch++;
        }
        else
        cout<<ch++<<" ";
    }
    return 0;
}
2022/10/21 17:56
加载中...