1551 - Frase Completa
Você está preparado para pensar com conjuntos?
Descrição
Solução
Para este problema, você pode usar um conjunto para acrescentar as letras, e apenas as letras, de cada frase e contar quantos elementos tem ao final para definir se a frase é completa, quase completa ou mal elaborada. Caso sua linguagem não tenha suporte a conjuntos, nada que um mapeamento em um vetor de 26 posições usando a tabela ASCII não resolva.
#include <string.h>
#include <stdio.h>
#include <ctype.h>
int main(){
char frase[1001];
int N, diferentes, contagem[26];
scanf("%d\n", &N);
for(int k = 0; k < N; ++k){
memset(contagem, 0, sizeof(contagem));
scanf("%[^\n]\n", &frase);
for(int i = 0; i < strlen(frase); ++i){
if(isalpha(frase[i])){
contagem[frase[i] - 'a'] = 1;
}
}
diferentes = 0;
for(int i = 0; i < 26; ++i){
if(contagem[i]) ++diferentes;
}
if(diferentes == 26) printf("frase completa\n");
else if(diferentes > 12) printf("frase quase completa\n");
else printf("frase mal elaborada\n");
}
return 0;
}
Last updated
Was this helpful?