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.