View Single Post
Old 24-09-2011, 15:11   #7
Floris
Senior Member
 
L'Avatar di Floris
 
Iscritto dal: Jan 2007
Messaggi: 2267
Si scusa. Mi sono anche accorto che nel codice sopra ti salvo i valori mentre bastava semplicemente contarli. Allora diventa più semplice:
Codice:
int* Vet = new int[100];
for(int i=0; i<100;i++)
   Vet[i] = rand(0,99);
int* Vet2 = new int[10];
for(int i =0; i<10; i++){
   for(int j=0; j<100; j++){
      if(Vet[j]>10*i && Vet[j]<10*(i+1))
         Vet2[i]++;
   }
}
dove rand è la funzione di libreria che ritorna un intero casuale compreso tra 0 e 99 (forse si chiama con qualche altro parametro...guardati le specifiche in rete).
Probabilmente potresti anche farla più efficiente in qualche modo...ad esempio utilizzando funzioni per modificare i due cicli innestati ed averne uno solo:
Codice:
for(int j=0; j<100; j++){
   Vet2[floor(Vet[j]/10)]++;
}
dove floor arrotonda per difetto all'intero più vicino.

Edit:non serve floor...poiché essendo divisione tra interi, ritorna un intero tralasciando i decimali.
__________________
Concluso con:...

Ultima modifica di Floris : 24-09-2011 alle 15:21.
Floris è offline   Rispondi citando il messaggio o parte di esso