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++ - Gestione pacchetti tramite funzione rand()
Forum - C/C++ - Gestione pacchetti tramite funzione rand()

Avatar
champ (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 10:47
Martedì, 16/06/2009
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
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 17:47
Martedì, 16/06/2009


Il mio blog: https://piero.dev
PM Quote