Salve a tutti.Nel programma devo inviare ad una funzione un array di dieci elementi.La funzione deve copiarli in un altro array,succesivamente,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 programma:
codice:
#include <stdio.h>
#include <windows.h>
#include <time.h>
#include <stdlib.h>
int destinatario(int pac[],int *conf){
int ricevuti[4],j;
for(j=0;j<4;j++){
ricevuti[j]=pac[j];//copio l'intero array in un altro
srand(time(NULL));
*conf=rand()%2;//genero numero casuale e ritorno a mittente
if(*conf==1)
return 1;
else return 0;
}
}
void mittente(){
int pacchetti[4]/*array pacchetti*/,i;
int conferma,risp;
for(i=0;i<4;i++){
Sleep(2000);
printf("\n\nSpedizione pacchetto numero %d\n",i+1);
conferma=destinatario(pacchetti,&risp);//invio l'array a destinatario
Sleep(5000);
if(conferma==1){// condizioni per proseguire col prossino elemento oppure rinvio dello stesso.
printf("\nAck ricevuto\n");
}
else{
Sleep(2000);
printf("\nNack ricevuto\n");
i--;//qui decremento l'indice per la rispedizione del pacchetto
}
Sleep(2000);
}
}
main(){
printf("********************** SIMULAZIONE**********************\n");
Sleep(1000);
printf("\n\nInizio spedizione pacchetti........\n");
mittente();//invoco la funzione
printf("\n********************** TERMINAZIONE SIMULAZIONE**********************\n");
}
Provate ad eseguirlo,il problema è nella generazione del numero casuale,questo influisce l'invio o il rinvio degli elementi.
Aspetto gentilmente un vostro consiglio.Vi ringrazio anticipatamente.
Ultima modifica effettuata da champ il 16/06/2009 alle 10:48 |