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

Tribbl2201 Tribbl2201    1   07.09.2019 20:10    3

Ответы
сдаддае сдаддае  06.10.2020 23:35
// на вход в командной строке нужно подать название файла с текстом, в стандартном потоке указанный символ
#include <cstdio>

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);
}
ПОКАЗАТЬ ОТВЕТЫ
dddddq dddddq  06.10.2020 23:35
#include <iostream>
#include <map>
using namespace std;
 
int main()
{
    string text = { "hello my name is paperman" }; // наш текст
    string word = { "" }; // слово для сравнения
    cin >> word; // просим ввести сравниваемую букву
    map<char, unsigned> 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 ;
    }
    return 0;
}
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика