mirror of https://github.com/me50/kukemuna.git
This commit is contained in:
commit
c351c9f0d7
|
|
@ -0,0 +1,80 @@
|
|||
#include <cs50.h>
|
||||
#include <ctype.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
int get_letters(string text);
|
||||
int get_words(string text);
|
||||
int get_sentences(string text);
|
||||
|
||||
int main(void)
|
||||
{
|
||||
// Prompt the user for some text
|
||||
string text = get_string("Text:\n");
|
||||
|
||||
// Count the number of letters, words, and sentences in the text
|
||||
int letters = get_letters(text);
|
||||
int words = get_words(text) + 1; // +1 for last word
|
||||
int sentences = get_sentences(text);
|
||||
|
||||
// Compute the Coleman-Liau index
|
||||
int index = round(0.0588 * (100 * letters / (float) words) - 0.296 * (100 * sentences / (float) words) - 15.8);
|
||||
|
||||
// Print the grade level
|
||||
if (index < 1)
|
||||
{
|
||||
printf("Before Grade 1\n");
|
||||
}
|
||||
else if (index >= 16)
|
||||
{
|
||||
printf("Grade 16+\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Grade %i\n", index);
|
||||
}
|
||||
|
||||
// printf("# letters: %i\n", letters);
|
||||
// printf("# words: %i\n", words);
|
||||
// printf("# sentences: %i\n", sentences);
|
||||
}
|
||||
|
||||
int get_letters(string text)
|
||||
{
|
||||
int letters = 0;
|
||||
for (int i = 0, length = strlen(text); i < length; i++)
|
||||
{
|
||||
if (!isspace(text[i]) && !ispunct(text[i]))
|
||||
{
|
||||
letters++;
|
||||
}
|
||||
}
|
||||
return letters;
|
||||
}
|
||||
|
||||
int get_words(string text)
|
||||
{
|
||||
int words = 0;
|
||||
for (int i = 0, length = strlen(text); i < length; i++)
|
||||
{
|
||||
if (isspace(text[i]))
|
||||
{
|
||||
words++;
|
||||
}
|
||||
}
|
||||
return words;
|
||||
}
|
||||
|
||||
int get_sentences(string text)
|
||||
{
|
||||
int sentences = 0;
|
||||
for (int i = 0, length = strlen(text); i < length; i++)
|
||||
{
|
||||
if (text[i] == '!' || text[i] == '?' || text[i] == '.')
|
||||
{
|
||||
sentences++;
|
||||
}
|
||||
}
|
||||
return sentences;
|
||||
}
|
||||
Loading…
Reference in New Issue