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;
}