» »

[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 ()

matejv ::

kako napako ti javi?

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:
#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

snow ::

Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

OChack ::

če ti zadeva ne gre, pol Fajfrju pošl mail, ker predvidevam da maš njega :)
Int€l inside, IDIOT Outside

m4r3 ::

hvala vsem ki ste mi pomagali:))


Lp marko


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Niti - segmentation fault

Oddelek: Programiranje
211857 (704) galu
»

C - shranjevanje rezultatov iz baze v array

Oddelek: Programiranje
71144 (843) Randomness
»

[c++] problem: pretvorba iz malih v velike crke

Oddelek: Programiranje
142019 (1666) Makina
»

[C++] - Tolmačenje povedi in izvedba operacij nad števkami

Oddelek: Programiranje
353187 (2423) jernejl
»

[C] čuden izpis iz txt dat. na zaslon

Oddelek: Programiranje
121609 (1346) l0g1t3ch

Več podobnih tem