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.

Rispondi quotando