#include <stdio.h>
#include <string.h>
int main()
{
char string[100];
int c = 0, count[26] = {0};
printf("Enter a string\n");
gets(string);
while (string[c] != '\0')
{
if (string[c] >= 'a' && string[c] <= 'z')
count[string[c]-'a']++;
else if (string[c] >= 'A' && string[c] <= 'Z')
count[string[c]-'A']++;
c++;
}
for (c = 0 ; c < 26 ; c++)
{
if(count[c] != 0)
printf("%c %d\n", c+'a', count[c]);
}
return 0;
}
Так что мне удалось заставить код работать, чтобы подсчитать частоты букв как число. Но мое задание говорит мне представлять его как процент от всей строки.Как изменить частоту писем в процентах?
Так, например, ввод aaab дал бы мне 0,7500, b - 0,2500.
Как мне изменить этот код, чтобы представить его как процент, а не число?
Кроме того, если бы я должен был делать это, когда пользователь вводит строки до EOF, просто удаляю оператор печати «Ввод строки» и изменяем while (string [c]! = '\ 0') до (string [c]! = EOF)?
Деление отдельных счетов на сумму всех сумм? Или по длине строки? Однако обязательно используйте арифметику с плавающей запятой. –
'count [c] * 100.0/strlen (string)' –
@MOehm Я имел в виду что-то вроде MarkStechell в качестве ответа. Исправлены мои предыдущие комментарии – ha9u63ar