#include <stdio.h>
#include <cs50.h>
#include <string.h>
#include <math.h>
int letters = 0;
int words = 0;
int sentences = 0;
int main(void)
{
string text = get_string("Text: ");
printf("\n");
for(int j = 0; j < strlen(text); j++)
{
if ((text[j] >= 'a' && text[j] <= 'z') || (text[j] >= 'A' && text[j] <= 'Z'))
{
letters++;
}
if (text[j] == ' ')
{
words++;
}
if (text[j] == '.' || text[j] == '!' || text[j] == '?')
{
sentences++;
}
}
printf("Letters: %i\n", letters);
printf("Words: %i\n", words);
printf("Sentences: %i\n", sentences);
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
printf("%f\n", result);
~/pset1/readability/ $ make readability
clang -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow readability.c -lcrypt -lcs50 -lm -o readability
readability.c:36:30: error: expression result unused [-Werror,-Wunused-value]
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
^~~~~~~~~
readability.c:36:41: error: expression result unused [-Werror,-Wunused-value]
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
^~~~~~~
readability.c:36:68: error: expression result unused [-Werror,-Wunused-value]
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
^~~~~~~~~
readability.c:36:79: error: expression result unused [-Werror,-Wunused-value]
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
^~~~~
4 errors generated.
<builtin>: recipe for target 'readability' failed
make: *** [readability] Error 1
Кто-нибудь может мне помочь? Я серьезно запутался в том, что я делаю неправильно. Я пытаюсь использовать формулу индекса Коулмана-Ляу (индекс = 0,0588 * L - 0,296 * S - 15,8 - L - среднее количество букв на 100 слов в тексте, а S - среднее количество предложений на 100 слов в тексте). текст.)
("%i / %i", letters, words)
Это не работает так, как вы думаете, вас смущают аргументы printf
, которые принимает функция. Если вам нужно разделить, просто используйте /
отдельно: letters / words
.
Так как это целые числа, и вам, вероятно, нужно отношение с дробной частью, также неплохо было бы привести одну из этих переменных к типу float или double: letters / (double) words