Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  abc
Language: C/C++
Code:
#include <cs50.h>
#include <stdio.h>
#include <string.h>
#include <math.h>


int main(void)
{
    // Get the text input from the user
    string text = get_string("Text: ");

    //Define variables for the total number of letters, words, and sentences
    int letters = 0;
    int words = 1;
    int sentences = 0;

    //Loop through the text to detect certain characters
    for (int i = 0; i < strlen(text); i++)
    {
        //Count the letters by detecting alphabetical characters
        if ((text[i] >= 'a' && text[i] <= 'z') || (text[i] >= 'A' && text[i] <= 'Z'))
        {
            letters += 1;
        }
        //Calculate the number of words by detecting blank spaces
        if (text[i] == ' ')
        {
            words += 1;
        }
        //Calculate the number of words by assuming characters
        //that ends with a . or a ! or a ? to be a sentence
        if (text[i] == '.' || text[i] == '!' || text[i] == '?')
        {
            sentences += 1;
        }
    }

    //Calculate the average number of letters per 100 words for the Coleman-Liau index
    float L = (float) letters * 100 / (float) words;
    //Calculate the average number of sentences per 100 words for the Coleman-Liau index
    float S = (float) sentences * 100 / (float) words;

    //Calculate the Coleman-Liau index rounded to the nearest integer
    int index = round((0.0588 * L) - (0.296 * S) - 15.8);

    // For the reading level that is smaller than Grade 1
    if (index < 1)
    {
        printf("Before Grade 1\n");
    }
    // For the reading level that is equivalent to or greater than a senior undergraduate reading level
    else if (index >= 16)
    {
        printf("Grade 16+\n");
    }
    //For the levels in between print as output "Grade X"
    else
    {
        printf("Grade %i\n", index);
    }
}
Comments: