tryx1
11.09.2022 16:01

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

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
kristinandrosov
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);
}
0,0(0 оценок)
Ответ:
AngelinaKMN00
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;
}
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота