Forum » Programiranje » [NALOGA][C] - Sortiranje učencev
[NALOGA][C] - Sortiranje učencev
m4r3 ::
#include <stdio.h> #include <stdlib.h> #include <string.h> int compare (const void * a, const void * b) { return (strcmp(a, b)); } void izpis(char **osebe) { int i = 0; while (i < 10) { printf("%s\n", osebe[i]); i++; } } int main() { char osebe[10][20]; char urejeno[10][20]; int i = 0, j; while (i < 10) { printf("Ime in priimek: "); gets(osebe[i]); i++; } qsort(osebe*, 10, 20, compare); return 0; }
A mi lahka kdo pove kje je napa v tem programu. Program mora vpisati v tabelo 10 učencev in jih razvršča po abecedi.
Prosim pomagajte
LP marko
edit moderator: Prosim uporabljal bolj opisne naslove, kot je "Moj program ne deluje" in prilepi kodo skladno s temi pravili, namesto hiperpovezav na kodo z dvomljivim življenskim rokom.
- spremenilo: CCfly ()
klemen22 ::
A tista 2d tabela "urejeno" je tko za šalo tam al kako?
Motiti se je človeško, odpuščati pa božje. Torej ti odpuščam ;)
mjakop ::
Ko sem imel glih čas:
Očitno ti niso vse stvari jasne(kazalci, nepotrebne spremenljivke)
edit moderator: tudi tebi priporočam kratek pregled pravil, da ne bomo imeli mrtvih hiperpovezav.
#include <stdio.h> #include <stdlib.h> #include <string.h> int compare (const void * a, const void * b) { return (strcmp(a, b)); } void izpis(char osebe[10][20]) { int i = 0; while (i < 10) { printf("%s\n",osebe[i]); i++; } } int main() { char osebe[10][20]; int i = 0; while (i < 10) { printf("Ime in priimek: "); gets(osebe[i]); i++; } qsort(osebe, 10, 20, compare); izpis(osebe); system("PAUSE"); //samo da vidimo izpis return 0; }
Očitno ti niso vse stvari jasne(kazalci, nepotrebne spremenljivke)
edit moderator: tudi tebi priporočam kratek pregled pravil, da ne bomo imeli mrtvih hiperpovezav.
Zgodovina sprememb…
- spremenilo: CCfly ()
CCfly ::
#include <stdio.h> #include <stdlib.h> #include <string.h> #define PSTRLEN 20 #define PARRLEN 10 static int compare (const void* a, const void* b) { return (strncmp(a, b, PSTRLEN)); } void izpis(char osebe[PARRLEN][PSTRLEN]) { for(int i=0; i<PARRLEN; i++) printf("%s\n", osebe[i]); } int main(int argc, char** argv) { char osebe[PSTRLEN][PARRLEN]; for(int i=0; i<PARRLEN; i++) { printf("Ime in priimek: "); gets(osebe[i]); } qsort(osebe, PARRLEN, sizeof(char*), compare); izpis(osebe); return 0; }
PS: Vidim da se s kodo nisi kaj dosti trudil. Ko boš prišel do kompleksnejših algoritmov ti bomo možgani eksplodirali, če ne boš preštudiral kazalcev.
PS2: Nikoli ne uporabljal funkcije strcmp. Nikoli !
"My goodness, we forgot generics!" -- Danny Kalev
OChack ::
če ti zadeva ne gre, pol Fajfrju pošl mail, ker predvidevam da maš njega :)
Int€l inside, IDIOT Outside
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Niti - segmentation faultOddelek: Programiranje | 2004 (851) | galu |
» | C - shranjevanje rezultatov iz baze v arrayOddelek: Programiranje | 1249 (948) | Randomness |
» | [c++] problem: pretvorba iz malih v velike crkeOddelek: Programiranje | 2147 (1794) | Makina |
» | [C++] - Tolmačenje povedi in izvedba operacij nad števkamiOddelek: Programiranje | 3370 (2606) | jernejl |
» | [C] čuden izpis iz txt dat. na zaslonOddelek: Programiranje | 1682 (1419) | l0g1t3ch |