С++ ! один из методов криптографии заключается в измерении частоты появляения буквы в тексте. необходимо написать программу, вычисляющую какую часть текста составляет указанная буква. т.е. отношения количества встречания одной буквы к количеству букв в тексте.
#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);
}
#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;
}