#42977: 測資25行會錯


B123245022 (li wei)

學校 : 國立中山大學
編號 : 245794
來源 : [140.117.178.210]
最後登入時間 :
2024-10-15 16:46:23
c044. 10008 - What's Cryptanalysis -- UVa10008 | From: [223.139.186.22] | 發表日期 : 2024-10-13 14:24

#include <bits/stdc++.h>
using namespace std;

int main(){
    int test;
    cin >> test;
    cin.ignore();
    string sentence;
    int *arr = new int[26];

    for(int i=0; i<26; i++){
        arr[i] = 0;
    }

    for(int i=0; i<test; i++){
        while(cin >> sentence){

            for(char ch : sentence){
                int a=-1;
                if(ch >= 'a' && ch <= 'z'){
                    a = ch - 'a';
                    arr[a] += 1;
                }
                else if(ch >= 'A' && ch <= 'Z'){
                    a = ch - 'A';
                    arr[a] += 1;
                }
            }
        }
    }

    int feq[26] = {0};
    for(int i=0; i<26; i++){
        feq[i] = i;
    }

    for(int i=0; i<25; i++){
        for(int j=0; j<25-1-i; j++){
            if(arr[j] < arr[j+1]){
                swap(feq[j], feq[j+1]);
                swap(arr[j], arr[j+1]);
            }
        }
    }

    for(int i=0; i<26; i++){
        if(arr[i] != 0){
            cout << (char)(feq[i]+'A')  << " " << arr[i] << endl;
        }
    }
    delete[] arr;

 

 

}

 
ZeroJudge Forum