-
Notifications
You must be signed in to change notification settings - Fork 0
/
readability.c
72 lines (61 loc) · 1.57 KB
/
readability.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <ctype.h>
#include <cs50.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
// letras do alfabeto
char letras[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
int pontuacao_frase(string word);
int main(void)
{
// Get input sentence
string frase = get_string("Text: ");
// Pontuação da frase
int l = pontuacao_frase(frase);
// Print grade
if (l < 1)
{
printf("Before Grade 1\n");
}
else
{
if (l >= 16)
{
printf("Grade 16+\n");
}
else
{
printf("Grade %i\n", l);
}
}
}
int pontuacao_frase(string word)
{
int qtd_letras = 0, qtd_frases = 0, qtd_palavras = 1;
// TODO: Compute and return score for string
for (int i = 0, n = strlen(word); i < n; i++)
{
//Calculando a qtd de letras
for (int l = 0; l < 26; l++)
{
if (tolower(word[i]) == letras[l])
{
qtd_letras ++;
break;
}
}
//Calculando a qtd de frases e palavras
if (word[i] == '!' || word[i] == '.' || word[i] == '?')
{
qtd_frases ++;
}
if (word[i] == ' ')
{
qtd_palavras ++;
}
}
float ave_letters = ((float)qtd_letras / qtd_palavras) * 100.0;
float ave_sentences = ((float)qtd_frases / qtd_palavras) * 100.0;
float index = 0.0588 * ave_letters - 0.296 * ave_sentences - 15.8;
return round(index);
}