Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Sortirani upis u listu - dvostruki kriterijum - problem

[es] :: C/C++ programiranje :: C/C++ za početnike :: Sortirani upis u listu - dvostruki kriterijum - problem

[ Pregleda: 4126 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Miladinovic
Miladinovic

Član broj: 33748
Poruke: 1892



+44 Profil

icon Sortirani upis u listu - dvostruki kriterijum - problem30.01.2009. u 13:55 - pre 190 meseci
Pozdrav,

Trebam da rešim problem koji izgleda ovako: Unositi studente (ime, prezime,ocenu) sortirano u listu po sledećim kriterijumima:
1. Po prosečnoj oceni;
2.Ukoliko je prosečna ocena ista kod studenata, njih sortirati leksikografski po imenu

Ja sam uradio samo za prosečnu ocenu, i posebno da sortira leksikografski, ali ne uspevam da uradim kombinaciju da radi kako treba, pa molim za pomoć.

Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _cvor
{
    char ime[100];
    char prezime[100];
    float ocena;
    struct _cvor *sl;
}CVOR;

CVOR* naparavi_cvor(char ime[],char* prezime,float ocena)
{
    CVOR*novi=(CVOR*)malloc(sizeof(CVOR));
    if (novi==NULL) exit(-1);
    strcpy(novi->ime,ime);
    strcpy(novi->prezime,prezime);
    novi->ocena=ocena;
    return novi;
}

void ubaci_na_pocetak_ime(CVOR**pl,char* ime,char*prezime,float ocena)
{
    CVOR*novi=naparavi_cvor(ime,prezime,ocena);

    if (*pl==NULL || strcmp(ime,(*pl)->ime)<0)
    {
        novi->sl=*pl;
        *pl=novi;
        return;
    }

    CVOR*t;
    for (t=*pl;t->sl!=NULL && strcmp(ime,t->sl->ime)>0;t=t->sl);
    novi->sl=t->sl;
    t->sl=novi;
}

void ubaci_na_pocetak_prosek(CVOR**pl,char* ime,char*prezime,float ocena)
{
    CVOR*novi=naparavi_cvor(ime,prezime,ocena);
    if (*pl==NULL || ocena > (*pl)->ocena)
    {
        novi->sl=*pl;
        *pl=novi;
        return;
    }
    CVOR*t;
    for (t=*pl;t->sl!=NULL && t->sl->ocena > ocena;t=t->sl);
    novi->sl=t->sl;
    t->sl=novi;
}

void ispis_liste(CVOR*l)
{
    CVOR*t;
    for (t=l;t!=NULL;t=t->sl)
        printf("%s\t%s\t%f\n",t->ime,t->prezime,t->ocena);
}

void oslobodi(CVOR*l)
{

    while (l)
    {
        CVOR*tmp=l->sl;
        free(l);
        l=tmp;
    }

}

int main()
{
    CVOR*l=NULL;
    CVOR*m=NULL;
    char ime[100];
    char prezime[100];
    float ocena;
    int i;
    for (i=0;i<3;i++)
    {
        printf("\nUnesite Ime Studenta:");
        scanf("%s",&ime);
        printf("\nUnesite Prezime Studenta:");
        scanf("%s",&prezime);
        printf("\nUnesite Prosecnu Ocenu:");
        scanf("%f",&ocena);
        ubaci_na_pocetak_ime(&l,ime,prezime,ocena);
        ubaci_na_pocetak_prosek(&m,ime,prezime,ocena);
    }
    printf("\n\n---------Ispis leksikografski po imenima----------\n");
    ispis_liste(l);
    printf("\n\n-----------Ispis po prosecnoj oceni-----------\n");
    ispis_liste(m);

    oslobodi(l);
    oslobodi(m);



    return 0;
}

 
Odgovor na temu

dmilicev
Dragan Milicev

Član broj: 3501
Poruke: 10
*.3gnet.mts.telekom.rs.



+1 Profil

icon Re: Sortirani upis u listu - dvostruki kriterijum - problem28.03.2018. u 08:01 - pre 79 meseci
http://dmilicev.freehostia.com...ing_string_int_float_v2.c.html
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
178.250.138.210



+1064 Profil

icon Re: Sortirani upis u listu - dvostruki kriterijum - problem28.03.2018. u 11:08 - pre 79 meseci
Sta fali std::list? Osim ako nije excercize implementacija liste....
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4909
*.static.isp.telekom.rs.



+641 Profil

icon Re: Sortirani upis u listu - dvostruki kriterijum - problem28.03.2018. u 11:21 - pre 79 meseci
Tema je pokrenuta pre 111 meseci, ali svejedno, ako je rešenje ponuđeno - onda OK. Da, najčešće se radilo o vežbama na C jeziku.
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
178.250.138.210



+1064 Profil

icon Re: Sortirani upis u listu - dvostruki kriterijum - problem28.03.2018. u 11:51 - pre 79 meseci
Heh, sad tek videh od kad je ;)
Ja video odgovor a nisam pogledao kad je pokrenuto pitanje ;p
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1255



+96 Profil

icon Re: Sortirani upis u listu - dvostruki kriterijum - problem28.03.2018. u 12:39 - pre 79 meseci
Koja li je verovatnoća da u Srbiji postoje dva odrasla čoveka imena Dragan Milićev, koji se bave kompjuterima? Jedan, profesor, postavlja zadatke studentima, a drugi omogućava studentima da ne muče mnogo svoje glavice, preuzimajući rešenja s interneta.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4909
*.static.isp.telekom.rs.



+641 Profil

icon Re: Sortirani upis u listu - dvostruki kriterijum - problem28.03.2018. u 12:41 - pre 79 meseci
To je i meni palo na pamet... Mislim da je ipak koincidencija (ili neka rodbinska veza).

Pogledaj kod na linku koji je ostavio, ima neka struktura sa imenima i godištima. Otuda pretpostavka.

ALI ČLAN BROJ: 3501 !!!

Povlačim reč.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Sortirani upis u listu - dvostruki kriterijum - problem

[ Pregleda: 4126 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.