Pagina 4 di 6 primaprima ... 2 3 4 5 6 ultimoultimo
Visualizzazione dei risultati da 31 a 40 su 60

Discussione: [C] funzione ricorsiva

  1. #31
    Originariamente inviato da /dev/null
    Quell'int non serve, se no dichiari una variabile locale all'interno di quell'if, e non modifichi il valore della variabile statica

    Comunque ancora non funziona
    Se lo eseguo, sia che gli passi "ciao", sia che gli passi "anna" mi rende sempre 0 :master:


    Scusa, ti sto facendo impazzire
    azz certo.....errore di battitura di quell'int vado di fretta oggi
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  2. #32
    Originariamente inviato da /dev/null

    Comunque ancora non funziona
    Se lo eseguo, sia che gli passi "ciao", sia che gli passi "anna" mi rende sempre 0 :master:


    Scusa, ti sto facendo impazzire
    a me funziona perfettamente....eccolo completo e fixato!
    codice:
    #include<stdio.h>
    
    int palindroma(char *parola){
    static int i=1;
    static int j=0;
    
    //controllo che la stringa passata non sia nulla
    if(parola == NULL) return 0;
    
    //condizione di uscita della ricorsione
    if(i == strlen(parola)) { i=1; j=0; return 1;}
    
    
    if(parola[j] == parola[strlen(parola)-i] ){
    ++i;
    ++j;
    return palindroma(++parola);
    }
    
    }
    
    
    int main(){
    
    char test[50];
    printf("\nInserisci una parola...\n");
    scanf("%s",test);
    if(palindroma(test))
    printf("\n%s è PALINDROMA",test);
    else
    printf("\n%s NON è PALINDROMA",test);
    getchar();
    
    }
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  3. #33
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Originariamente inviato da andrea_NET-_DSL
    a me funziona perfettamente....eccolo completo
    codice:
    #include<stdio.h>
    
    int palindroma(char *parola){
    static int i=1;
    static int j=0;
    
    //controllo che la stringa passata non sia nulla
    if(parola == NULL) return 0;
    
    //condizione di uscita della ricorsione
    if(i == strlen(parola)) {int i=j=1; return 1;}
    
    
    if(parola[j] == parola[strlen(parola)-i] ){
    ++i;
    ++j;
    return palindroma(++parola);
    }
    
    }
    
    
    int main(){
    
    char test[50];
    printf("\nInserisci una parola...\n");
    scanf("%s",test);
    if(palindroma(test))
    printf("\n%s è PALINDROMA",test);
    else
    printf("\n%s NON è PALINDROMA",test);
    getchar();
    
    }


    codice:
    EXECUTING:
    /home/dewell/C/stringhe/palindroma
    ----------------------------------------------
    
    Inserisci una parola...
    ciao
    
    ciao è PALINDROMA
    ----------------------------------------------
    Program exited successfully with errcode (10)
    Press the Enter key to close this terminal ...

    A te ti dice che "ciao" NON e' palindroma? :master:
    Dato che sono state usate tutte funzioni standard non credo che c'entri nulla... Comunque... Che compilatore usi e su che os?
    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  4. #34
    se nn usi valore negativi...abituati ad usare unsigned int......conviene
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  5. #35
    Originariamente inviato da /dev/null
    codice:
    EXECUTING:
    /home/dewell/C/stringhe/palindroma
    ----------------------------------------------
    
    Inserisci una parola...
    ciao
    
    ciao è PALINDROMA
    ----------------------------------------------
    Program exited successfully with errcode (10)
    Press the Enter key to close this terminal ...

    A te ti dice che "ciao" NON e' palindroma? :master:
    Dato che sono state usate tutte funzioni standard non credo che c'entri nulla... Comunque... Che compilatore usi e su che os?
    linux slackware 10 con gcc

    andr3anet@linuxbox00:~/Desktop$ ./test

    Inserisci una parola...
    ciao

    ciao NON è PALINDROMA
    andr3anet@linuxbox00:~/Desktop$


    andr3anet@linuxbox00:~/Desktop$ ./test

    Inserisci una parola...
    anna

    anna è PALINDROMA
    andr3anet@linuxbox00:~/Desktop$

    con questo codice sorgente
    codice:
    #include<stdio.h>
    
    int palindroma(char *parola){
    static int i=1;
    static int j=0;
    
    //controllo che la stringa passata non sia nulla
    if(parola == NULL) return 0;
    
    //condizione di uscita della ricorsione
    if(i == strlen(parola)) {i=1; j=0; return 1;}
    
    
    if(parola[j] == parola[strlen(parola)-i] ){
    ++i;
    ++j;
    return palindroma(++parola);
    }
    
    }
    
    
    int main(){
    
    char test[50];
    printf("\nInserisci una parola...\n");
    scanf("%s",test);
    if(palindroma(test))
    printf("\n%s è PALINDROMA\n",test);
    else
    printf("\n%s NON è PALINDROMA\n",test);
    }
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  6. #36
    Originariamente inviato da Luc@s
    se nn usi valore negativi...abituati ad usare unsigned int......conviene
    grazie x il consiglio...ma a volte nn ci ripenso specialmente quando posto codici sorgenti nei forum,più che altro x sbrigarmi

    ps con unsigned il valore intero parte da 0 vero?cioè senza segno
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  7. #37
    Originariamente inviato da andrea_NET-_DSL
    grazie x il consiglio...ma a volte nn ci ripenso specialmente quando posto codici sorgenti nei forum,più che altro x sbrigarmi

    ps con unsigned il valore intero parte da 0 vero?cioè senza segno
    l'abitudine è quella.........ma se lo fai poi è automatico.
    P.s: da 0 in su, si
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  8. #38
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Io il gcc 3.3.4 20040623 su una gentoo


    Pero'... A me mi riconosce come palindroma anche "ciao"
    Questo e' l'output da shell (prima lo eseguivo da Anjuta):
    codice:
    $ gcc -o palindromab palindromab.c 
    $ ./palindromab 
    
    Inserisci una parola...
    ciao
    
    ciao è PALINDROMA
    Te con che opzioni la compili?







    PS: Ti consiglio di compilare i programmi passando al GCC l'opzione -Wall: cosi' ti mostra tutti gli warning e li puoi aggiustare


    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  9. #39
    Originariamente inviato da Luc@s
    l'abitudine è quella.........ma se lo fai poi è automatico.
    P.s: da 0 in su, si
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  10. #40
    Originariamente inviato da /dev/null
    Io il gcc 3.3.4 20040623 su una gentoo


    Pero'... A me mi riconosce come palindroma anche "ciao"
    Questo e' l'output da shell (prima lo eseguivo da Anjuta):
    codice:
    $ gcc -o palindromab palindromab.c 
    $ ./palindromab 
    
    Inserisci una parola...
    ciao
    
    ciao è PALINDROMA
    Te con che opzioni la compili?


    PS: Ti consiglio di compilare i programmi passando al GCC l'opzione -Wall: cosi' ti mostra tutti gli warning e li puoi aggiustare



    io lo compilo semplicmente con gcc palindroma_ricorsiva.c -o test sotto linux Slackware 10 con gcc version 3.3.4

    Cmq non è possibile che a me vada e a te no ...prova a creare un nuovo file incollarci l'ultimo codice da me rilasciato e ricompilarlo

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

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.