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>intmain(){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; }elseif(frase[i] ==' '){ primeiro =1; } }printf("%c\n", tautograma ?'Y':'N'); }return0;}