Ich schrieb ein Programm, das einen gemeinsamen Buchstaben in einer Zeichenfolge findet, ich beabsichtige, diesen Brief zu drucken, und den Buchstaben, der am zweithäufigsten ist, wie erreiche ich das?Wie drucke ich das nächste gemeinsame Element in einer Zeichenfolge?
Hier ist mein Code:
#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);
}
Dank.
Der Code für diese Frage zu [Swap zwei häufigsten Zeichen in einer Zeichenfolge] (https://stackoverflow.com/questions/41664603/) - eine Frage, die eigentlich einen ganz anderen Titel hat, aber das Ziel ist eng damit verwandt (es geht weiter, alle Vorkommen der häufigsten mit dem zweithäufigsten Buchstaben und alle Vorkommen der zweithäufigsten mit dem gebräuchlichsten Buchstaben zu tauschen, aber das ist Quiz). Der Code zum Finden des maximalen und zweiten Maximums ist dem [Xzenon] (https://stackoverflow.com/users/2491551/xzenon) sehr ähnlich. –