首页 > 解决方案 > 期末成绩部分不适用于字母、单词、句子计数程序

问题描述

为什么最后一部分 Grade 不计算?我的意思是,为什么它没有进行到程序的最后部分?

#include <stdio.h>
#include <cs50.h>
#include <string.h>
#include <math.h>

int main(void)
{
    char text[1000];
    int number = 0;
    int words = 0, i;
    int sentences = 0, j;
    float l = ((number +1) / (words +1)) * 100;
    float s = ((sentences+1) / (words+1)) * 100;
    float index = (0.0588 * l) - 0.296 * s - 15.8;

    // Text Input = Text //

    printf("Text: ");
    fgets(text, sizeof(text), stdin);
    printf("%s", text);

    // Letters = number //

    number = strlen(text);
    printf("%d letters\n", number);

    // Words = words //

    for (i = 0; text[i] != '\0'; i++)
    {
        if (text[i] == ' ' && text[i+1] != ' ')
        words++;
    }
    printf("%d words\n", words);

    // Sentences = sentences

    for (j = 0; j < strlen(text); j++)
        {if (text[j] == '.' || text[j] == '!' || text[j] == '?')
            sentences++;
        }

        printf("%d sentences\n", sentences);

    // grade level based on formula //

    if (index >= 1 && index <= 16)
        {
            printf("Grade %f\n", index);
        }
             else
                {
                  if (index < 1)
                    {
                printf("Before Grade 1\n");
                    }

                if (index > 16)
                    {
                printf("Grade 16+\n");
                    }
                }
        }

任何反馈都会很重要。

我怀疑这是由于分配给数字、单词和句子的初始变量的整数标识,但我不知道如何改进这一点。阻碍我进步和理解的只是期末成绩部分。

标签: cformulacs50calculation

解决方案


推荐阅读