С++ СРОЧНО!!!!!!!!! Один из методов криптографии заключается в измерении частоты...

0 голосов
51 просмотров

С++
СРОЧНО!!!!!!!!!
Один из методов криптографии заключается в измерении частоты появляения буквы в тексте. Необходимо написать программу, вычисляющую какую часть текста составляет указанная буква. Т.е. отношения количества встречания одной буквы к количеству букв в тексте.


Информатика (124 баллов) | 51 просмотров
0

На питоне будет ровно три строчки. Полная статистика частоты всех букв в тексте. Если кто ответ на С++ напишет - даже интересно во сколько строк уложатся? )

0

питон не язык :Р

Дано ответов: 2
0 голосов

// на вход в командной строке нужно подать название файла с текстом, в стандартном потоке указанный символ
#include

int
main(int argc, char **argv)
{
    char g_ch = getchar();
    FILE *fin = fopen(argv[1], "rt");
    int count = 0;
    int count_all = 0;
    char ch = 0;
    while ((ch = fgetc(fin)) != EOF) {
        if (ch == g_ch) {
            count++;
        }
        count_all++;
    }
    printf("%f\n", 1. * count / count_all);
    return fclose(fin);
}

(2.9k баллов)
0

входные данные 10 a
abbacadaff
выходные данные 0.4

0 голосов

#include
#include


using namespace std;
 
int main()
{
    string text = { "hello my name is paperman" }; // наш текст
    string word = { "" }; // слово для сравнения
    cin >> word; // просим ввести сравниваемую букву
    map key_map;
    for(auto i: text) {
        if (word.find(tolower(i)) != string::npos) {
            ++key_map[tolower(i)] ;
        }
    }
    for(auto &pair : key_map) {
        cout << "char: " << pair.first << " | count: " << pair.second << endl ;<br>    }
    return 0;
}

(4.2k баллов)