Mijn vraag
Ik ben voor school bezig met een opdracht en een gedeelte daarvan is alle getallen uit een array die kleiner of gelijk zijn aan de gemiddelde waarde opslaan in een nieuwe array. Uiteraard is de opdracht nog een stuk uitgebreider maar in dit stuk loop ik even vast.
Bij dit stukje code geeft Visual Studio een "De index ligt buiten de matrixgrenzen" en hoewel dat normaal relatief eenvoudig is op te lossen lukt het me deze keer niet.
Relevante software en hardware die ik gebruik
Microsoft Visual Studio 2017
Wat ik al gevonden of geprobeerd heb
Uiteraard flink gegoogled en op stack overflow rondgekeken maar ik kom er helaas zo niet uit dus vandaar dat ik de tweakers om hulp vraag.
Ik ben voor school bezig met een opdracht en een gedeelte daarvan is alle getallen uit een array die kleiner of gelijk zijn aan de gemiddelde waarde opslaan in een nieuwe array. Uiteraard is de opdracht nog een stuk uitgebreider maar in dit stuk loop ik even vast.
Bij dit stukje code geeft Visual Studio een "De index ligt buiten de matrixgrenzen" en hoewel dat normaal relatief eenvoudig is op te lossen lukt het me deze keer niet.
code:
1
2
3
4
5
6
7
8
9
10
| // Making a for loop to add the numbers to the array below or equal to avg int p = 0; for(int i = 0; i <= n.Length-1; i++) { if (n[i] <= avg) { belowAvg[p] = n[i]; p++; } } |
Relevante software en hardware die ik gebruik
Microsoft Visual Studio 2017
Wat ik al gevonden of geprobeerd heb
Uiteraard flink gegoogled en op stack overflow rondgekeken maar ik kom er helaas zo niet uit dus vandaar dat ik de tweakers om hulp vraag.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| private void button1_Click(object sender, EventArgs e) { // The array containing the numbers to be sorted int[] n = { 4, 7, 3, 6, 9, 1, 8, 2, 5 }; // Making an int var to add for calc avg int a = 0; int avg = 0; // For loop to calculate the avg for(int i = 0; i < n.Length; i++) { a += n[i]; } // Store average number in variable avg avg = a / n.Length; // Making an array for numbers below and equal to avg int[] belowAvg = { }; // Making a for loop to add the numbers to the array below or equal to avg int p = 0; for(int i = 0; i <= n.Length-1; i++) { if (n[i] <= avg) { belowAvg[p] = n[i]; p++; } } // Checking if it works? MessageBox.Show(belowAvg[0].ToString() + ", " + belowAvg[1].ToString()); } |