1140 - Flores Florescem da França

Problema prático para perceber palavras parecidas pela primeira posição.

Descrição

Solução

Em certas linguagens de programação, esse problema é bem mais fácil do que em outras. A ideia é ter uma forma de separar palavras de uma frase e conferir se todas as palavras começam com a mesma letra, o que é uma tarefa mais fácil se pegarmos a primeira palavra e considerarmos que todo as outras têm que começar com essa letra. Detalhe apenas para o formato que esse problema não distingue entre maiúsculas e minúsculas, então é preciso converter todas as primeiras letras para minúscula ou maiúscula para fazer a comparação.

#include <string.h>
#include <stdio.h>
#include <ctype.h>

int main(){
    char letra, frase[1001];
    int n, tautograma, primeiro;

    while(scanf("%[^\n]\n", &frase)){
        if(frase[0] == '*') break;

        primeiro = 1;
        tautograma = 1;
        n = strlen(frase);
        letra = tolower(frase[0]);
        for(int i = 0; i < n; ++i){
            if(primeiro){
                if(tolower(frase[i]) != letra){
                    tautograma = 0;
                    break;
                }
                primeiro = 0;
            }else if(frase[i] == ' '){
                primeiro = 1;
            }
        }

        printf("%c\n", tautograma ? 'Y' : 'N');
    }

    return 0;
}

Last updated