如何在 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个单词的字母数,并用等式计算等级。
所以我的任务是评估文本提示的阅读水平。在下面的代码中,我已经设法以三种方式分析文本。字母、单词和句子的数量。 然而,为了计算阅读水平,我需要将这些值组合成一个公式:
"指数 = 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个单词的字母数,并用等式计算等级。