24. november 2012 - 11:54Der er
5 kommentarer og 1 løsning
sortering af et array af structs med qsort() i c.
Hej experten.dk
Jeg har problemer med at sortere et array af structs med qsort. arrayet match[] skal sorteres så de structs med største verdi i goals kommer først.
Med andre ord. Den kamp der har er blevet scoret flest mål i kommer først.
//Her har jeg min struct matchData som er global. typedef struct matchData{ int round, date, month, year, hour, seconds; char time[6], homeTeam[4], guestTeam[4]; int goalHome, goalGuest, spectators, goals; }matchData;
// Arrayet match[] som skal sorteres (også globalt). matchData match[MAXMATCHES];
// i opg 5 har jeg min qsort(). void opg5(){ qsort(match, MAXMATCHES, sizeof(matchData), goalCompare); }
Min compiler kommer med disse fejl: $ gcc eksamensopgave.c eksamensopgave.c: In function ‘goalCompare': eksamensopgave.c:89:2: fejl: ‘goals' undeclared (first use in this function) eksamensopgave.c:89:2: bemærk: each undeclared identifier is reported only once for each function it appears in eksamensopgave.c:89:9: fejl: ‘t1' undeclared (first use in this function) eksamensopgave.c:89:22: fejl: expected expression before ‘)' token eksamensopgave.c:91:24: fejl: ‘t2' undeclared (first use in this function)
Hvorfor optræder goals som undeclared? kan simpelthen ikke se fejlen. Skal lige siges jeg ikke har helvedet meget styr på qsort(). Dette er første gang jeg bruger den.
Så skriver min compiler: $ gcc eksamensopgave.c eksamensopgave.c: In function ‘goalCompare': eksamensopgave.c:92:2: advarsel: passing argument 1 of ‘strcmp' makes pointer from integer without a cast /usr/include/string.h:30:6: bemærk: expected ‘const char *' but argument is of type ‘int' eksamensopgave.c:92:2: advarsel: passing argument 2 of ‘strcmp' makes pointer from integer without a cast /usr/include/string.h:30:6: bemærk: expected ‘const char *' but argument is of type ‘int' eksamensopgave.c:94:2: advarsel: passing argument 1 of ‘strcmp' makes pointer from integer without a cast /usr/include/string.h:30:6: bemærk: expected ‘const char *' but argument is of type ‘int' eksamensopgave.c:94:2: advarsel: passing argument 2 of ‘strcmp' makes pointer from integer without a cast /usr/include/string.h:30:6: bemærk: expected ‘const char *' but argument is of type ‘int' eksamensopgave.c:101:12: fejl: expected expression before ‘char' eksamensopgave.c:101:33: fejl: expected ‘;' before ‘{' token eksamensopgave.c:376:1: fejl: expected declaration or statement at end of input
Hvis du faktisk bruger C++ og ikke C, saa er der en del ting i din kode som kunne goeres anderledes.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.