Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Iterazione di array con condizione
Forum - C/C++ - Iterazione di array con condizione

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
champ (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 11:53
Lunedì, 15/06/2009
Salve a tutti. Nel mio programma devo inviare ad una funzione un array di dieci elementi.La funzione deve copiarli in un altro array,deve restituire al main un valore casuale,che in base a quest'ultimo,continua ordinatamente ad inviare gli elementi dell'array oppure ripete di nuovo l'invio dell'ultimo elemento alla funzione.
Allego il mio codice
codice:

...

int destinatario(int pac[],int *conf){
    
    int ricevuti[10],j;
    for(j=;j<10;j++)
        ricevuti[j]=pac[j];
        srand(time(NULL));
        return *conf=rand()%1;
main(){

int i,conferma,*risp;
...

    do{
        for(i=0;i<10;i++){
            printf("\n\nSpedizione pacchetto numero %d\n",i+1);
            conferma=destinatario(pacchetti,&risp);
        }
    }while(conferma!=0);
...



Questa è la mia versione.Non sono riuscito a ripetere l'invio dell'elemento in base al valore che restituisce la funzione.
Aspetto gentilmente una vostra correzione.
Vi ringrazio in anticipo.

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 12:19
Lunedì, 15/06/2009
Non ho capito il problema ... ma la prima for non ha un inizio ...

PM Quote
Avatar
champ (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 12:29
Lunedì, 15/06/2009
Parte da 0:for(j=0;j<10;j++),errore di battitura. Invio a destinatario l'elemento di indice 0 dell'array,la funzione lo copia in suo array,poi,con la funzione rand,restituisco al main un valore 0 o 1.Se il valore è 0,invio di nuovo a destinatario lo stesso elemento,altrimenti invio quello d'indice seguente.

Ultima modifica effettuata da champ il 15/06/2009 alle 12:30
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 12:41
Lunedì, 15/06/2009
Perche' passi un doppio puntatore

&risp

invece del singolo puntatore

risp

?

PM Quote
Avatar
champ (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 13:47
Lunedì, 15/06/2009
Ti ringrazio per la correzione,è stato un mio errore di dichiarazione variabili.

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 14:56
Lunedì, 15/06/2009
Prego ... comunque e' normale che sono tuoi errori, altrimenti funzionerebbe ...

:)

A parte questo, non si capisce dalla tua risposta se adesso funziona come vuoi ...

PM Quote
Avatar
champ (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 15:23
Lunedì, 15/06/2009
No non funziona come voglio...Questo è quello che dovrebbe fare..Invio a destinatario l'elemento di indice 0 dell'array,la funzione lo copia in suo array,poi,con la funzione rand,restituisco al main un valore 0 o 1.Se il valore è 0,invio di nuovo a destinatario lo stesso elemento,altrimenti invio quello d'indice seguente....

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 15:27
Lunedì, 15/06/2009
Beh ... se hai ancora problemi lo devi dire chiaramente nelle tue risposte altrimenti non risolverai perche' nessuno ti rispondera' ...

Dopo che hai fatto le correzioni, riproponi il codice CORRETTO e dicci cosa non va ancora ...

PM Quote
Avatar
champ (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 15:48
Lunedì, 15/06/2009
Questo è il codice corretto:

...

int destinatario(int pac[],int *conf){
    
    int ricevuti[10],j;
    for(j=0;j<10;j++)
        ricevuti[j]=pac[j];
        srand(time(NULL));
        return *conf=rand()%1;
main(){

int i,conferma,risp;
...

    do{
        for(i=0;i<10;i++){
            printf("\n\nSpedizione pacchetto numero %d\n",i+1);
            conferma=destinatario(pacchetti,&risp);
        }
    }while(conferma!=0);
...

Il programma continua ad inviare gli elementi dell'array consecutivamente,senza eventuali rinvii di uno stesso elemento..

Ultima modifica effettuata da champ il 15/06/2009 alle 15:48
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo