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 :)
Intl inside, IDIOT Outside
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Niti - segmentation faultOddelek: Programiranje | 2043 (890) | galu |
» | C - shranjevanje rezultatov iz baze v arrayOddelek: Programiranje | 1280 (979) | Randomness |
» | [c++] problem: pretvorba iz malih v velike crkeOddelek: Programiranje | 2191 (1838) | Makina |
» | [C++] - Tolmačenje povedi in izvedba operacij nad števkamiOddelek: Programiranje | 3412 (2648) | jernejl |
» | [C] čuden izpis iz txt dat. na zaslonOddelek: Programiranje | 1709 (1446) | l0g1t3ch |