Está quase ! Porém você precisa realizar 3 comparações, neste código vc realizou apenas uma. A ideia é: compare str1 e srt2, pegue o maior do dois e compare com o srt3, logo voce terá a maior string.
mais ou menos asssim
#define TAM 30
#define TAM1 30
#define TAM2 30
int main()
{
char str1[TAM], str2[TAM1], str3[TAM2];
int comp;
printf("Informe o primeiro nome ");
scanf("%[^\n]", str1);
fflush(stdin);
printf("Informe o segundo nome ");
scanf("%[^\n]", str2);
fflush(stdin);
printf("Informe o terceiro nome ");
scanf("%[^\n]", str3);
comp = strcmp(str1, str2);
if (comp < 0 || comp == 0){
comp = strcmp(str3, str2);
if (comp > 0)
printf(" a maior string eh : %s \n ", str3);
else
printf(" a maior string eh : %s \n ", str2);
}
else if (comp > 0){
comp = strcmp(str1, str3);
if (comp < 0)
printf(" a maior string eh : %s \n ", str1);
else
printf(" a maior string eh : %s \n ", str3);
}
return 0;
}