Ich lerne selber gerade erst C, daher kann ich dir nicht so wirklich helfen. Ich habe nur ein paar Ausgaben hinzugefügt und ein seltsames Ergebnis erhalten (siehe unten). Offenbar wird die Schleife, die die Eingabe des Textes liest, einmal ausgeführt, ohne dass ein Text eingegeben wurde und text[0] mit einem anderen Wert gefüllt als dem ersten Buchstaben.

#include <stdio.h>
#include <stdlib.h>

int main(){
//einlesen
printf("Geben Sie die Länge des Strings an: ");
int a;
scanf("%i", &a);
char text[a];
printf("Text eingeben:\n");
int i;
for (i = 0; i != a; i++) {
scanf("%c", &text[i]);
}
//umgekehrt ausgeben
int c;
c = a;
while (c > -1){
printf("text[%d] = %c\n", c, text[c]);
c--;
}
//Palindrom oder nicht
int count = 0;
i = 0;
int d;
d = a - 1; //4
while (text[i] == text[d]){
count ++;
i++;
d--;
}
if(count == a){
printf("palindrom");
}
return 0;
}

Ausgabe siehe Bild

...zur Antwort