Ik heb een heel vaag probleem. Het zit zo:
Als ik de onderstaande code uitvoer en als max een grote waarde opgeef dan lijkt het alsof het programma vast loopt.
Ik heb met de debugger gekeken en het bleek dat hij in een oneindigende loop komt. Ik heb al met ShowMessage gekeken of het aan de while loop lag maar das nie zo, want om een gegeven moment komt die niet eens meer tevoorschijn.
Dus op de een of andere vage manier komt ie in een oneindigende loop. (niet altijd en niet op hetzelfde moment)
Kan iemand me hier misschien mee helpen?
ps. Als iemand betere en/of snellere code weet vind ik het ook goed
.
Ik moet dus een array vullen met een reeks random gekozen waardes en alle getallen mogen maar 1x voorkomen.
Als ik de onderstaande code uitvoer en als max een grote waarde opgeef dan lijkt het alsof het programma vast loopt.
Ik heb met de debugger gekeken en het bleek dat hij in een oneindigende loop komt. Ik heb al met ShowMessage gekeken of het aan de while loop lag maar das nie zo, want om een gegeven moment komt die niet eens meer tevoorschijn.
Dus op de een of andere vage manier komt ie in een oneindigende loop. (niet altijd en niet op hetzelfde moment)
Kan iemand me hier misschien mee helpen?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| void TForm1 :: giveRandomNumbers (int min, int max) { randomize(); nrs = new int [gewensteAantal]; for ( int i = 0; i < gewensteAantal; i++ ) { nrs[i] = (random(max - min) + 1) + min; for ( int j = 0; j < i; j++ ) { while ( nrs[j] == nrs[i] ); { if ( nrs[i] == max ) nrs[i] = (random(max - min) + 1) + min; else nrs[i] += 1; } } } } |
ps. Als iemand betere en/of snellere code weet vind ik het ook goed
Ik moet dus een array vullen met een reeks random gekozen waardes en alle getallen mogen maar 1x voorkomen.
Ik stink niet, ik ruik gewoon anders