Ten eerst, sorry voor de vage titel, ik kon niks beters bedenken
.
Maar het zit zo, ik heb een array van 9 willekeurige signed int's, dus bv:
De eerste 3 stellen de inhoud voor van afvalbak #1, de volgende 3 van afvalbak #2, en de laatste 3 van afvalbak #3.
Daarin weer stelt het eerste element(dus 0, 3 en 6) het aantal groene flessen voor, 1, 4 en 7 het aantal bruine flessen en 2, 5 en 8 het aantal niet gekleurde flessen.
Nu moet voor een willekeurige aantal flessen uitrekenen met hoeveel zetten ik alles goed kan sorteren(dus bak1 alleen groen, bak2 alleen bruin of andersom, maakt niet uit hoe, als het maar bij elkaar zit). Ik ben al een heel eind, maar ik sta nu voor een probleem, het minst aantal zetten krijg je door de grootste aantal van de drie groene, bruine en niet gekleurde te laten staan.
Maar dat lukt niet altijd, want soms zitten de meeste per groep in 1 bak, zoals bij mijn voorbeeld het geval is. Van groen zitten de meeste in bak 2(a[3]). Maar van bruin en niet gekleurd zitten de meeste in bak 3, dus van 1 van de 2 moet ik de 1 na grootste nemen. En dat wil niet. Ik het volgende:
a, b en c zijn hier de indexen van de array invoer.
Ik roep dit 3 keer aan
Nu is mijn vraag dus, hoe kan ik kijken of de waardes die worden gereturnd, in 1 bak zitten, en zoja hoe kan ik dan de 1 na grootste krijgen?
Maar het zit zo, ik heb een array van 9 willekeurige signed int's, dus bv:
code:
1
2
3
4
5
6
7
8
9
| a[0]=5 a[1]=10 a[2]=5 a[3]=20 a[4]=10 a[5]=5 a[6]=10 a[7]=20 a[8]=10 |
De eerste 3 stellen de inhoud voor van afvalbak #1, de volgende 3 van afvalbak #2, en de laatste 3 van afvalbak #3.
Daarin weer stelt het eerste element(dus 0, 3 en 6) het aantal groene flessen voor, 1, 4 en 7 het aantal bruine flessen en 2, 5 en 8 het aantal niet gekleurde flessen.
Nu moet voor een willekeurige aantal flessen uitrekenen met hoeveel zetten ik alles goed kan sorteren(dus bak1 alleen groen, bak2 alleen bruin of andersom, maakt niet uit hoe, als het maar bij elkaar zit). Ik ben al een heel eind, maar ik sta nu voor een probleem, het minst aantal zetten krijg je door de grootste aantal van de drie groene, bruine en niet gekleurde te laten staan.
Maar dat lukt niet altijd, want soms zitten de meeste per groep in 1 bak, zoals bij mijn voorbeeld het geval is. Van groen zitten de meeste in bak 2(a[3]). Maar van bruin en niet gekleurd zitten de meeste in bak 3, dus van 1 van de 2 moet ik de 1 na grootste nemen. En dat wil niet. Ik het volgende:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| int biggest(const int a, const int b) { int buffer=0; unsigned int returnValue = 0; for(int i=a; i<=b; i += 3) { if(*(invoer+i)>buffer) { buffer = *(invoer+i); returnValue = i; } } return returnValue; } |
a, b en c zijn hier de indexen van de array invoer.
Ik roep dit 3 keer aan
C++:
1
2
3
| bin1.biggest = biggest(0, 6); bin2.biggest = biggest(1, 7); bin3.biggest = biggest(2, 8); |
Nu is mijn vraag dus, hoe kan ik kijken of de waardes die worden gereturnd, in 1 bak zitten, en zoja hoe kan ik dan de 1 na grootste krijgen?
[ Voor 3% gewijzigd door Verwijderd op 01-02-2004 12:14 ]