Ho provato a buttare già qualcosa.... che ne dite? può andar bene? non mi compila ma penso che la logica ci sia no? magari c'è qualche piccolo errore..
codice:
bool distanzaAlfabetica(char a[], int dim){
if(dim%2 != 0) //per far terminare subito la funzione in caso di stringa dispari
return false;
if(a[i]=='\0') //passo base
return true;
int distanza= a[0] - a[dim/2];
if(a[i] - a[dim/2+i] != distanza) //passo ricorsivo
return false;
distanzaAlfabetica(a[], dim, i+1);
}//chiusura funzione
In pratica ..spiego quello che ho fatto:
Ho messo la differenza tra i due caratteri che dovrebbero formare la coppia(il primo carattere della stringa e il primo carattere della metà della stringa) in una variabile intera chiamata distanza. Poi ho fatto una verifica: se tutte le coppie successive hanno la stessa "distanza" la funzione restituisce true altrimenti false.