Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <locale>
- int main() {
- setlocale(LC_ALL, "Russian");
- // Только латиница, ибо с кириллицей заморочки при вводе
- const int ALPHABET_LENGTH = 26;
- const char* ALPHABET = "abcdefghijklmnopqrstuvwxyz";
- const int MAX_STR_LEN = 100;
- char str[MAX_STR_LEN + 1] = "";
- int freq[ALPHABET_LENGTH] = { 0 };
- char viewed_symbols[ALPHABET_LENGTH + 1] = "";
- int i, max_freq = 0, max_index = 0;
- printf("Введите строку: ");
- gets_s(str);
- // переводим все символы строки в нижний регистр
- for (i = 0; i < strlen(str); i++) {
- str[i] = tolower(str[i]);
- }
- // считаем частоту каждой буквы в строке
- for (i = 0; i < strlen(str); i++) {
- if (strchr(ALPHABET, str[i]) != NULL) {
- char* sym_ptr = strchr(viewed_symbols, str[i]);
- if (sym_ptr != NULL) freq[sym_ptr - viewed_symbols]++;
- else {
- int new_index = strlen(viewed_symbols);
- viewed_symbols[new_index] = str[i];
- freq[new_index] = 1;
- }
- }
- }
- // находим букву с максимальной частотой
- for (i = 0; i < strlen(viewed_symbols); i++) {
- if (freq[i] > max_freq) {
- max_freq = freq[i];
- max_index = i;
- }
- }
- // выводим результат
- printf("Самая часто встречающаяся буква в строке: %c\n", viewed_symbols[max_index]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement