Я пытаюсь выполнить квест на читабельность (от cs50 ), и я думал, что моя программа работала нормально, но когда я попытался оценить правильность моего кода с помощью check50, он показал мне следующее:
":( обрабатывает одно предложение с несколькими ожидаемыми словами" 7 класс \ n ", а не" текст \ nGrade 8 ... ""
, и это было единственным результат неправильный, остальные были зелеными и правильными.
Что я делаю не так?
Вот мой код
#include <cs50.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
int main (void)
{
string text = get_string ("Text: ");
printf ("text\n");
int letters=0,words=1,sentences=0;
for (int i = 0; i < strlen(text); i++)
{
if ((text[i] >= 'a' && text[i] <= 'z' ) || (text[i] >= 'A' && text[i] <= 'Z'))
{
letters++;
}
else if (text[i]== ' ')
{
words++;
}
else if ((text[i])== '.' || (text[i]) == '!' || (text[i]) == '?')
{
sentences++;
}
}
float L = letters * 100 / words;
float S = sentences * 100 / words;
float index = 0.0588 * L - 0.296 * S - 15.8;
if (index >= 16)
{
printf ("Grade 16+\n");
}
else if (index < 1)
{
printf ("Before Grade 1\n");
}
else
{
printf ("Grade %i\n",(int) round(index));
}
}
- слово - любая последовательность символов разделена через пробел - слово.
- предложение - любая последовательность символов, заканчивающаяся ("?". ".", "!")