В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
bes10
bes10
23.10.2021 04:41 •  Информатика

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

Ответ:
новичок579
новичок579
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 оценок)
Ответ:
сархан2007
сархан2007
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
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?