Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    103

    calcolo palindromo di una stringa

    Ho fatto diverse prove oggi per verificare il palindromo di una stringa. Seguendo varie opzioni trovate in rete ho avuto una piccola difficoltà nel capire un procedimento.

    int main(int argc, char *argv[])
    {
    int a,i,b;
    b=0;
    char s[200];

    scanf("%s", &s);

    i = strlen(s);



    for(a = 0; a<(i/2+1); a++){
    if ( s[a] != s[i-a-1] ) {


    return 0;



    }

    else{
    return 1;
    }




    }
    system("PAUSE");
    return 0;
    }

    nel for la variabile a deve arrivare a (i/2+1) facendo così da come posso intuire dimezzo la stringa rendendola pari. Perchè devo fare così?? non riesco a capire il motivo

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Il codice va postato con il tag CODE o perde l'indentazione e diventa illeggibile.
    Inoltre cerca di dare nomi sensati alle variabili... a, b, i non dicono nulla. Quest'ultimo nome è convenzione usarlo come indice di un ciclo pertanto il tuo ciclo è un attimo disorientate

    Venendo al tuo problema, prova a ragionare sul significato stringa palindroma e vedrai che capisci perché il ciclo si ferma a metà.
    Un aiutino: se ho la stringa "ABBCBBA" devo scorrerla tutta per sapere se è palindroma? Il primo con l'ultimo, il secondo con il penultimo, il terzo col terzultimo.. capisce bene che iterando questo procedimento prima o poi l'indice destro e l'indice sinistro si accavalleranno...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perché per capire se è palindroma devi controllare se la prima metà è uguale alla seconda. Ad esempio la parola

    onorarono

    è palindroma. Se la dividi in due parti

    onor a rono

    confronterai

    o con o
    n con n
    o con o
    r con r

    e

    a con a
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.