Zakładając że w ciągu znaków znajdują się tylko małe litery od a-z napisałam coś takiego:
int liczZnaki(char *napis)
{
int i=0;
while (napis[i] != 0) i++;
return i;
}
char *napis = "alla cccmmacccc kkkoootabbb";
int litera = 0;
char najwiecej;
char najmniej;
int temp=0;
int liczbaZnakow = liczZnaki(napis);
int temp2 = liczZnaki(napis);
for (int i=0; i<liczbaZnakow; i++)
{
int m=0;
while (m<liczbaZnakow)
{
if (napis[i] == napis[m]) litera++;
m++;
}
if (litera<temp2)
{
najmniej = napis[i];
temp2 = litera;
}
if (litera>temp)
{
najwiecej = napis[i];
temp = litera;
}
litera = 0;
}
cout << "Najczesciej: " << najwiecej << endl
<< "Najrzadziej: " << najmniej << endl;
system ("PAUSE");
return 0;
Jeśli najrzadziej/najczęściej występuje więcej liter w podanym ciągu to wtedy podaje jakąkolwiek z nich.
Chodzi mi o to żeby to jednak jakość prościej napisać, wiem że istnieje inne rozwiązanie wykorzystując to że literze a odpowiada liczba 97, 'z' = 122. Jak to tym sposobem zrobić?