Dag programmeurs van Tweakers,
Ik heb een programma geschreven dat een array vult met een studentnummer en een cijfer voor 100 studenten met behulp van een struct en pointers.
Nu wil ik de lijst sorteren van hoge naar lage cijfers met de bubble sort algoritme met een sorteerfunctie (array_sort)
Ik weet niet precies hoe ik deze functie nou goed kan vullen. meer info staat in de code met "//"
Ik heb een programma geschreven dat een array vult met een studentnummer en een cijfer voor 100 studenten met behulp van een struct en pointers.
Nu wil ik de lijst sorteren van hoge naar lage cijfers met de bubble sort algoritme met een sorteerfunctie (array_sort)
Ik weet niet precies hoe ik deze functie nou goed kan vullen. meer info staat in de code met "//"
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
| #include <stdio.h> #include <stdlib.h> #define KLASGROOTTE 100 //Creeer een nieuw type struct met de naam 'student' struct student { int studentnummer; int cijfer; }; void array_sort (struct student *klas_ptr, int array_lengte); // prototype van de functie array_sort int main() { //Declareer een array van 100 "student" structs struct student klas[KLASGROOTTE]; //Declareer een pointer naar het type struct student struct student *klas_ptr; int i, teller = 0; //Geef een studentnummer en cijfer aan alle 'student' structs in de array for (i=0; i<KLASGROOTTE; i++) { klas[i].studentnummer = i*10+105; //Geef een random cijfer tussen 0 - 99 aan elke student door rand() % 100 te nemen klas[i].cijfer = rand() % 100; } //Geef de pointer de waarde van het beginadres (het adres van klas[0]) van de array klas klas_ptr = &klas; //Print scores en bereken het aantal onvoldoendes for (i=0; i < KLASGROOTTE; ++i) { //Hier gebruiken we de '->' operator om te wijzen naar het genoemde element in de struct printf("Student %d heeft een cijfer %d\n", klas_ptr -> studentnummer, klas_ptr -> cijfer); if (klas_ptr -> cijfer < 55) teller++; //Incrementeren laat de pointer wijzen naar de volgende struct in de array klas_ptr++; } printf("\nTotaal onvoldundige cijfers = %d\n", teller); // hier de aanroep naar de functie om de array te sorteren op cijfer hoog naar laag // printen nieuwe lijst return 0; } void array_sort (struct student *klas_ptr, int array_lengte) { struct student temp; int i; for(i=0; i < array_lengte; i++) { // hier code om de structs in de array te sorteren // met bubble sort algoritme, temp struct is hulp variabele bij de verwisseling // de twee elementen van elke struct moeten natuurlijk bijelkaar blijven } } |