Generare un numero N di voti casuali

di il
5 risposte

Generare un numero N di voti casuali

Ho scritto questo semplice programma per generare un numero N di voti casuali (compresi tra 2 e 10) fornito dall’utente. Finchè si inserisce un numero minore di 6, il programma funziona bene e genera il totale richiesto, ma quando si inserisce un numero maggiore di 6 i voti generati rimangono sempre 6. Perchè succede e come posso risolvere?
 #include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main(){
	int N, a[N];
cout<<"Inserire il numero di voti: ";
cin>>N;
srand(time (NULL));
for(int i=0; i<N; i++){
	a[i]=rand()%9+2;
	cout<<a[i]<<endl;
	}
} 

5 Risposte

  • Re: Generare un numero N di voti casuali

    Int N, a[N];

    Questa riga cosa pensi che faccia? Sai come viene eseguita?
  • Re: Generare un numero N di voti casuali

    I voti generati rimangono sempre sei


    Significa che genera solo 6 voti?
    O che genera N voti tutti uguali a 6?

    Cosa fa? Stampa solo 6 volte? Oppure stampa sempre 6?

    A me sembra che quel programma sia profondamente sbagliato, ma dovrebbe 'sembrare' giusto, ovvero dovrebbe stampare (ma non memorizzare) il giusto numero di voti correttamente generati


    Cosa ti esce esattamente?
  • Re: Generare un numero N di voti casuali

    StandardOil ha scritto:


    I voti generati rimangono sempre sei
    Deve prima correggere quello che gli ho detto altrimenti è inutile provare il programma.
  • Re: Generare un numero N di voti casuali

    Io sono d'accordo

    Ma tutto il mio discorso prima è per indicare che quello che ha detto è incompatibile con l'errore che ha fatto


    Il programma che ha postato è certamente sbagliato, ma non si comporta come dice lui


    Quindi c'è ancora qualcosa di non chiaro


    PS inoltre credevo che in C++ i VLA non esistessero
  • Re: Generare un numero N di voti casuali

    Visto l'errore che ha fatto, il comportamento del programma non è definito e può variare da sistema a sistema e tra due esecuzioni in base al contenuto della memoria
    Quindi discutere del funzionamento ha poco senso
Devi accedere o registrarti per scrivere nel forum
5 risposte