私はすべてを試しましたが、コードのバグを理解できません。
ユーザー入力を取得して文字を数える
int main(void)
{
int letters = 0;
//Getting user input
string text = get_string("Text: ");
//Counting the letters
for (int i = 0; i < strlen(text); i++)
{
if (isalpha(text[i]))
{
letters++;
}
}
単語と文を数える
int words = 1;
//Checking the spaces and counting the words
for (int i = 1; i < strlen(text); i++)
{
if ((isspace(text[i])) && (isalpha(text[i+1])) )
{
words++;
}
}
int sentences = 0;
//Checking the symbols and counting the sentences
for (int i = 0; i < strlen(text); i++)
{
if (text[i] == '.' || text[i] == '!' || text[i] == '?')
{
sentences++;
}
}
そして、式を適用する
double L = 100.0 * letters / words;
double S = 100.0 * sentences / words;
double index = 0.0588 * L - 0.296 * S - 15.8;
int trueIndex = round(index);
if (trueIndex >= 1 && trueIndex <= 16)
{
printf("Grade %i\n", trueIndex);
}
else
{
if (trueIndex < 1)
{
printf("Before Grade 1\n");
}
if (trueIndex > 16)
{
printf("Grade 16+\n");
}
}
}
このエラーが発生しました:「グレード9\n」ではなく「グレード8\n」が必要です。フロートの処理方法と関係があることはわかっていますが、何が問題なのかわかりません
単語のカウントから_(isalpha(text[i+1])
_の部分を削除してみてください。 isalpha()
は、アルファベット文字に対してのみtrueを返します。つまり、a-z、A-Zです。引用符はfalseを返し、そのようなWordはカウントされません。
アリスは姉が銀行に座っていて、何もすることにうんざりし始めていました。1〜2回、姉が読んでいた本をのぞきましたが、写真も会話もありませんでした"と本の使い方は何か"とアリスは思いました"なし写真や会話?"
_//Checking the spaces and counting the words
for (int i = 1; i < strlen(text); i++)
{
if (isspace(text[i]))
{
words++;
}
}
_