champ (Normal User)
Newbie
Messaggi: 8
Iscritto: 10/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.
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Non ho capito il problema ... ma la prima for non ha un inizio ...
|
|
champ (Normal User)
Newbie
Messaggi: 8
Iscritto: 10/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 |
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Perche' passi un doppio puntatore
&risp
invece del singolo puntatore
risp
?
|
|
champ (Normal User)
Newbie
Messaggi: 8
Iscritto: 10/06/2009
|
Ti ringrazio per la correzione,è stato un mio errore di dichiarazione variabili.
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/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 ...
|
|
champ (Normal User)
Newbie
Messaggi: 8
Iscritto: 10/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....
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/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 ...
|
|
champ (Normal User)
Newbie
Messaggi: 8
Iscritto: 10/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 |
|