Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 23
  1. #11
    raga' non perdiamo il senso del 3d soluzioni???

    ps cmq la proceduta che ho scritto prima e' quella piu' semplice, la prima che mi viene in mente risolvendo il problema in modo iterativo, la complessita' non e' un problema ora...

  2. #12
    Originariamente inviato da shAke82
    hai una lista di interi ed un intero x:

    il primo elemento della lista e' uguale a x?

    se no

    il primo + secondo elemento della lista = x?

    se no

    il primo + secondo + .... i-esimo elemento della lista = x?
    fino a qui ti potrei aiutare a sviluppare in C una funzione ricorsiva...

    ma qua è il problema...
    se no, non esistono finestre della lista uguali a x e ritorni falso...altrimenti ritorni vero :P

    csa significa??

    intanto cerco di sviuluppare la prima parte
    ciao!
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  3. #13
    ah un altra cosa...il confronto tra gli elmenti non te lo sviluppo tramite lista ma su array.
    Va bene anche cosi' e cmq se propio ti serve la lista la implementi dal mio array

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

  4. #14
    se non trovi nessuna finestra uguale a x allora la funzione ritorno 1...se trovi un finestra uguale allora ritorni 0

    il problama deve verificare se esiste una finestra percio' deve ritornare 0 o 1 :tongue:

  5. #15
    Originariamente inviato da andrea_NET-_DSL
    ah un altra cosa...il confronto tra gli elmenti non te lo sviluppo tramite lista ma su array.
    Va bene anche cosi' e cmq se propio ti serve la lista la implementi dal mio array

    sento puzza di bruciato :adhone: cmq se poi si puo' riportare alle liste fa pure

    anche se gli array hanno delle proprieta' che le liste non hanno, per esempio se sei all'elemento 8 di un array sai il valore dell'elemento 3...mentre in una lista no (ammenoche' non te lo sia salvato da qualke parte :tongue: )

  6. #16
    Originariamente inviato da shAke82
    sento puzza di bruciato :adhone: cmq se poi si puo' riportare alle liste fa pure

    anche se gli array hanno delle proprieta' che le liste non hanno, per esempio se sei all'elemento 8 di un array sai il valore dell'elemento 3...mentre in una lista no (ammenoche' non te lo sia salvato da qualke parte :tongue: )
    con le liste non ti so aiutare...sto scrivendo la funzione ricorsiva prendila come esempio per capire meglio la ricorsione poi vedi tu



    ps puzza di bruciato :zamm: ehehe :gren: :gren:

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

  7. #17
    ok ok qualsiasi aiuto e' ben accetto

  8. #18
    Ok fatto funge,controlla se è come dicevi tu cmq
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    /* var globale usata alla funz ricorisva per "scorrere" l'array */
    int i=0;
     
     /* prototipo della funz ricorisiva */
    int ricorsiva(int *,int,int);
    
    int main(){
    
    int x=0,tmp=0;
    int lista_elementi[]={3,4,9,18,2,1};
    
    printf("inserisci un numero x : \n");
    scanf("%d",&x);
    
    int app; //val dove verrà salvato il ritorno delle funzione ricorisva
    app=ricorsiva(lista_elementi,tmp,x);
    printf("\nIl ritorno della funzione ricorisva e' %d\n\n",app);
    
    }
    
    
    int ricorsiva(int *elementi,int tmp,int x){ 
    /* passo alla funzione l'array con gli elementi,il numero x per il confronto e una var di appoggio(tmp) per                                                 la ricorsione */
    
    if ( (tmp=tmp+elementi[i])  == x ) return 0; /* efettuo la sommatoria degli elementi dell'array in modo ricorsivo per confrontrala,passo passo, con x immesso in input */
    		
    		else {
    		i++; //incremento il cont dell'array per "scorrerlo" alla prossima chiamata ricorsiva
    		return ( ricorsiva(elementi,tmp,x) ); //altrimenti richiamo la funzione dentro se stessa,dando vita alla ricorsione
                    } 
    						
    }
    ciao

    ps te l'ho anche commentato cosi' spiego cosa ho fatto :gren:

    ps certo è la prima versione fatta in pochissimo tempo,vedi tu cosa migliorare/aggiungere

    Ah importante! :gren: quando non c'è nessuna "maschera" non stampa il printf che comunica il ritorno della funzione.Non so perchè...sto vedendo.

    Quando c'è,inserendo 16 ad es,ritorna 0 e stampa a video il messaggio
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  9. #19
    int ricorsiva(int *elementi, int tmp, int x)
    {
    if ( (tmp=tmp+elementi[i]) == x ) return 0;

    else
    {
    i++;
    return ricorsiva(elementi,tmp,x)
    }
    }

    ma se non trova una finestra di peso "x" quando esce sto programma??

    Mettici una array che non ha finestre uguali ad x e vedrai che ti andra' in palla...il return 0 viene eseguito quando trova una finestra uguale, mentre se non ne trova la "i" continuera' a scorrere all'infinito

    ps cmq e' facilmente adattabile alle liste...

  10. #20
    e' NATA!!

    int verifica (list *p, int tmp, int x)
    {
    ........ if((tmp=tmp+(p->info))==x) return 0;

    ........ else
    ........ {
    ........ ........ if(p->next!=NULL) return (verifica(p->next,tmp,x));
    ........ ........ else return 1;
    ........ }
    }

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 © 2026 vBulletin Solutions, Inc. All rights reserved.