Voor een kleine school opdracht moet ik een stukje C schrijven waarin alle "voorwerpen" uit een Array worden afgedrukt welke een lengte hebben kleiner dan 100 en beginnen met de letter "G". Ik dacht zelf aan het onderstaande:
Maar de compiler (DEV C++) komt met de volgende melding:
comparison between pointer and integer
Alle code compiled (en werkt) naar behoren, behalve het stuk dat ervoor moet zorgen dat alleen voorwerpen welke beginnen met "G" getoond worden. Hieronder de volledige code mocht iemand die willen inzien:
C:
1
2
3
4
5
6
| int j; for (j = 0; j < aantalVoorwerpen; j++) { if (magazijn[j].lengte <= 100 && magazijn[j].naam[0] == "G") { druk_af(magazijn[j]); } } |
Maar de compiler (DEV C++) komt met de volgende melding:
comparison between pointer and integer
Alle code compiled (en werkt) naar behoren, behalve het stuk dat ervoor moet zorgen dat alleen voorwerpen welke beginnen met "G" getoond worden. Hieronder de volledige code mocht iemand die willen inzien:
C:
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
| #include <stdio.h> int aantalVoorwerpen = 0; typedef struct voorwerp{ int nummer; char naam[20]; float gewicht, lengte; } Voorwerp; void druk_af(Voorwerp v) { printf("%-15s heeft nummer %d, weegt %.2f kg en is %.2f cm\n", v.naam, v.nummer, v.gewicht, v.lengte); } int main(void) { while(aantalVoorwerpen > 40 || aantalVoorwerpen < 3) { printf("Hoeveel voorwerpen wilt u toevoegen?\n"); scanf("%d", &aantalVoorwerpen); if (aantalVoorwerpen > 40 || aantalVoorwerpen < 3) { printf("Aantal voorwerpen moet groter of gelijk zijn aan 3 en kleiner of gelijk aan 40\n"); } printf("\n"); } int i; Voorwerp magazijn[40]; for (i = 0; i < aantalVoorwerpen; i++) { printf("Nummer van voorwerp %d\n", i+1); scanf("%d", &magazijn[i].nummer); printf("Naam van voorwerp %d\n", i+1); scanf("%s", &magazijn[i].naam); printf("Gewicht van voorwerp %d\n", i+1); scanf("%f", &magazijn[i].gewicht); printf("Lengte van voorwerp %d\n", i+1); scanf("%f", &magazijn[i].lengte); printf("\n"); } int j; for (j = 0; j < aantalVoorwerpen; j++) { if (magazijn[j].lengte <= 100 && magazijn[j].naam[0] == "G") { druk_af(magazijn[j]); } } system("pause"); return 0; } |
[ Voor 4% gewijzigd door MueR op 26-06-2010 22:25 ]