Quando sei alle prime armi scrivi codice che ti mostra se procedi correttamente.
Il codice seguente non contiene cicli e funziona solo con numeri a 4 cifre, ogni riga è commentata perché il codice va capito passo passo, più semplice non si può.
Il problema si può risolvere in modi deversi, ho scelto la scomposizione in matrice, perché lo hai proposto tu.
#include <stdio.h>
int main() {
int numero, i, controllo = 0;
int numero1[4]; // spazio per 4 interi indicizzati da 0 a 3
printf("Il numero da verificare deve avere quattro cifre.\n");
printf("Digita il numero: ");
scanf("%d", &numero);
printf("\nIl numero digitato e': %d\n\n", numero);
// scomposizione in matrice es: se ho inserito 1234
numero1[0] = numero / 1000; // divido per mille per avere la prima cifra di 1234 (1)
numero %= 1000; // il resto della divisione di 1234/1000 mi da 234
numero1[1] = numero / 100; // divido per 100 per avere la prima cifra di 234 (2)
numero %= 100; // il resto della divisione 234/100 mi da 34
numero1[2] = numero / 10; // divido per 10 per avere la prima cifra di 34 (3)
numero %=10; // il resto della divisione di 34/10 mi da 4
numero1[3] = numero;
// controllo scomposizione
for (i=0; i<4; i++){
printf("%d\n", numero1[i]);
}
// controllo palindromità
if (numero1[0] == numero1[3]) controllo++; // controllo la prima e l'ultima cifra
if (numero1[1] == numero1[2]) controllo++; // controllo la seconda e la penultima cifra
if (controllo == 2)
printf("\nil numero e' palindromo\n");
else
printf("\nil numero non e' palindromo\n");
}
Ora prova a fare lo stesso con i cicli e che funzioni anche con numeri di varie cifre.