如何在 main 函数中使用函数原型中的值? - 组合单独的值

How can I use the values from function prototypes inside the main function? - Combining separate values

所以我的任务是评估文本提示的阅读水平。在下面的代码中,我已经设法以三种方式分析文本。字母、单词和句子的数量。 然而,为了计算阅读水平,我需要将这些值组合成一个公式:

"指数 = 0.0588 * L - 0.296 * S - 15.8

其中 L 是文本中每 100 个单词的平均字母数,S 是文本中每 100 个单词的平均句子数。

("修改 readability.c 以便不输出字母、单词和句子的数量,而是输出 Coleman-Liau 指数给出的年级水平(例如,"Grade 2" 或 " Grade 8")。务必将所得索引号四舍五入为最接近的整数!

如果得到的索引号为 16 或更高(相当于或大于本科高年级阅读水平),您的程序应该输出“Grade 16+”,而不是给出确切的索引号。如果索引号小于1,你的程序应该输出“Before Grade 1”。)

所以是的,基本上我有所有需要的值,但我不知道如何将它们用于公式来计算最终值,因为它们都在函数原型中,我无法获取它们在主要功能中一起...

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

int count_letters(string letters);
int count_words(string words);
int count_sentences(string sentences);

int main(void)
{
    string text = get_string("Text: ");
    count_letters(text);
    count_words(text);
    count_sentences(text);
}

int count_letters(string letters)
{
    int count = 0;
    for (int i = 0; i < strlen(letters); i++)
    {
        if (isalpha(letters[i]) != 0)
        {
            count++;
        }
    }
    printf("%i letter(s)\n", count);
    return count;
}

int count_words(string words)
{
    int count_w = 0;
    for (int j = 0; j < strlen(words); j++)
    {
        if (isspace(words[j]) != 0)
        {
            count_w++;
        }
    }
    count_w++;
    printf("%i word(s)\n", count_w);
    return count_w;
}

int count_sentences(string sentences)
{
    int count_s = 0;
    for (int k = 0; k < strlen(sentences); k++)
    {
        if ((int) sentences[k] == 33)
        {
            count_s++;
        }
        if ((int) sentences[k] == 46)
        {
            count_s++;
        }
        if ((int) sentences[k] == 63)
        {
            count_s++;
        }
    }
    printf("%i sentence(s)\n", count_s);
    return count_s;
}


您需要使用函数返回的值。

int total_letters = count_letters(text);

...等等。三个都具备后,就可以算出每100个单词的字母数,并用等式计算等级。