Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: (C++) random e while

  1. #1

    (C++) random e while

    salve a tutti...
    ho il seguente problema...sto facendo un programmino in c++ il quale alla fine dovrebbe stamparmi un tot di numeri casuali i quali siano compresi tra 0 e 7 e che il programma si fermi quando la somma dei numeri casuali generata è uguale ad un numero trovato con una funzione precedente...

    ora ho provato a fare una procedure inserendo la srand in un while ma non funziona e mi fa in ciclio infinito...

    potete aiutarmi??grazie a tutti in anticipo!!!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perché non proponi il tuo codice e ce lo spieghi?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    si avete ragione...
    più tardi o domani lo copio subito qui sul forum!!!

  4. #4
    eccomi...allora...

    le librerie che uso sono queste..

    #include<time.h>
    #include<stdio.h>
    #include<stdlib.h>

    e il pezzo in questione è questo:

    srand(time(0));
    while(k=f){
    i=rand()%7;
    cout<<i;
    cout<<endl;
    k=k+i;}

    dove f è il numero trovato precedentemente...praticamente devo trovare numeri casuali da 0 a 7 i quali sommati tra di loro mi danno f..una volta successo il programma termina...

    è giusto o ho sparato una boiata io??

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    k=f è una assegnazione e non un confronto

    k deve partire da 0, ma non è stato azzerato

    essendo casuali non è sempre possibile che la somma sia uguale a k, potrebbe essere superiore
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    k l'ho inizializzato a 0...
    quindi tu dici che potrei farlo con un if??
    altrimenti che soluzione proponi??

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La soluzione dovresti indicarcela tu ... Che ne pensi di quello che ti ho scritto (riguardo al fatto che è possibile che k superi f? Dovresti cambiare il confronto con k<f ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    io avevo pensato al <= visto che dovrei ottenere il numero esatto...

  9. #9
    mettendo k<f o k<=f è quasi giusto...solo che la somma dei numeri casuali supera di 1 il numero che dovrei trovare....

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Te l'avevo detto prima ... essendo CASUALI nessuno ti assicura che troverai esattamente il valore f.

    Se vuoi effettivamente ottenere quel valore, devi introdurre un controllo all'interno del ciclo che serva ad escludere il valore random ottenuto se questo fa superare (con la somma in k) il valore di f. Ovviamente potrebbe volerci più tempo per trovare il valore giusto.

    In questo caso potrai utilizzare un ciclo infinito da cui uscire solo per k==f
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.