Я написал программу, которая находит общую букву в строке, я намереваюсь напечатать эту букву, а письмо, которое является вторым наиболее распространенным, как мне это достичь?Как напечатать следующий общий элемент в строке?
Вот мой код:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#define MAX 10
#define MAX_FREQ 256
int main()
{
char string[MAX] = {0};
int i = 0;
int freq[MAX_FREQ] = {0};
printf("Enter a String: ");
fgets(string, MAX, stdin);
if(string[strlen(string)-1] == '\n') {string[strlen(string)-1] = 0;}
for(i = 0; string[i]; i++)
{
freq[string[i]]++;
}
for(i = 0; i < MAX_FREQ; i++)
{
if(freq[i])
{
printf("Most common: %c, 2nd most common: %c\n", i, i-1);
}
}
return (0);
}
Спасибо.
Код для этого вопрос о [своп двух наиболее часто встречающихся символов в строке] (https://stackoverflow.com/questions/41664603/) - вопрос, который на самом деле имеет совершенно другое название, но цель тесно связан с этим (он идет дальше, заменяя все вхождения наиболее распространенных со второй наиболее распространенной буквой, и все вхождения второго наиболее распространенного с самой общей буквой, но это пустяки). Код для поиска максимального и второго максимума очень похож на [Xzenon] (https://stackoverflow.com/users/2491551/xzenon). –