Srodne teme
Kliknite za generisanje liste srodnih tema...
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

z a m o l b a i p o m o c u c-u

[es] :: C/C++ programiranje :: z a m o l b a i p o m o c u c-u
(Zaključana tema (lock), by passenger)

[ Pregleda: 1777 | Odgovora: 2 ] > FB > Twit

Postavi temu

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kole1108
Vk

Član broj: 74954
Poruke: 2
*.adsl.net.t-com.hr.

ICQ: 70511383


Profil

icon z a m o l b a i p o m o c u c-u20.11.2005. u 08:41 - pre 224 meseci
Ovako imam zadaću i trebam je predati danas do 23:59 pa ako mi je netko voljan pomoći s tim vezanim listama pa da bar riješi bilo koji od ovih zadataka ispod i pošalje na mail: [email protected] Znam da svi mrze kad se traže gotovo rješenja ali mi ne ide jednostavno, kod slijedi, puno hvala unaprijed!
Rješenja funkcija trebaju biti pohranjene po imenima u datoteke:
->> dodavanje na početak reda - PROG04_4_1.C
->> dodavanje na kraj reda - PROG04_4_2.C
->> dodavanje prema najvećem prioritetu - PROG04_4_3.C
->> dodavanje prema najmanjem prioritetu - PROG04_4_4.C
->> brisanje elemenata iz reda - PROG04_4_5.C

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

// typedef uvodi vlastito definirani tip podatka LISTA
typedef struct lista {
unsigned int kljuc;
char naziv[20];
struct lista *sljedeci; // kazaljka na sljedeci element
} LISTA;

typedef struct red {
struct lista *prvi; // kazaljka na prvi element reda
struct lista *posljednji; // kazaljka na posljednji element reda
} RED;

// vraca broj elemenata liste
unsigned int broj_elemenata(LISTA *pocetak_liste)
// pocetak_liste je adresa od koje pocinje ispis
{
LISTA *p; // p sadrzi adresu tekuceg elementa liste
unsigned int br_el=0; // br_el sadrzi broj elemenata

p = pocetak_liste; // p prima adresu pocetka liste

while(p)
{
++br_el;
p = p->sljedeci; // prijelaz na sljedeci element
}
return(br_el);
}

// ispisuje elemente liste
void ispis_liste(LISTA *pocetak_liste)
// pocetak_liste je adresa od koje pocinje ispis
{
LISTA *p; // p sadrzi adresu tekuceg elementa liste

p = pocetak_liste; // p prima adresu pocetka liste

printf("\n");

while(p)
{
printf("%5d->%20s\n",p->kljuc,p->naziv);
p = p->sljedeci; // prijelaz na sljedeci element
}
}


void dodaj_element(RED *pocetak_reda, LISTA *novi_element);

// priprema za dodavanje u red
void dodaj_u_listu(RED *pocetak_reda)
// pocetak_reda je adresa varijable koja sadrzi adrese prvog i posljednjeg elementa
{
LISTA *novi_element; // novi_element je adresa elementa koji se dodaje
unsigned int ucitani_kljuc; // kljuc novog elementa
char ucitani_naziv[20]; // nazi novog elementa

do
{
printf("Upisi kljuc (0 za kraj) :");
scanf("%5d",&ucitani_kljuc); // upisuje se kljuc
if(ucitani_kljuc == 0) // kljuc = 0 tj. kraj unosa
break;
printf("Upisi naziv :");
scanf("%s",&ucitani_naziv); // upisuje se naziv
novi_element = (LISTA *) malloc(sizeof(LISTA)); // alokacija memorije
novi_element->kljuc = ucitani_kljuc; // kljucu novog elementa pridruzuje se upisana vrijednost
strncpy(novi_element->naziv, ucitani_naziv, 20);// nazivu novog elementa kopira se upisani naziv
dodaj_element(pocetak_reda, novi_element);// poziv funkcije za dodavanje u red
} while(1);
}


void brisi_element(RED *pocetak_reda, int ucitani_kljuc);


// priprema za brisanje iz reda
void brisi_iz_liste(RED *pocetak_reda)
// pocetak_reda je adresa varijable koja sadrzi adrese prvog i posljednjeg elementa
{
unsigned int ucitani_kljuc; // kljuc koji se brise

do
{
printf("Upisi kljuc za brisanje (0 za kraj) :");
scanf("%5d",&ucitani_kljuc); // upisuje se kljuc za brisanje
if(ucitani_kljuc == 0) // kljuc = 0 tj. kraj unosa
break;
brisi_element(pocetak_reda, ucitani_kljuc); // poziv funkcije za brisanje iz reda
} while(1);
}

main()
{
RED pocetak_reda;
unsigned int upit;

pocetak_reda.prvi = NULL; // nema prvog elementa
pocetak_reda.posljednji = NULL; // nema posljednjeg elementa

for(;;)
{
printf("\n\nIzaberi\n"
"1.Dodavanje elemenata\n"
"2.Brisanje elemenata\n"
"3.Ispis liste\n"
"0.Kraj\n"
" Izbor: ");
scanf("%1d",&upit);
switch(upit)
{
case 0: exit(0);
break;
case 1: dodaj_u_listu(&pocetak_reda);
break;
case 2: brisi_iz_liste(&pocetak_reda);
break;
case 3: ispis_liste(pocetak_reda.prvi);
printf("---ukupno %d elem.---\n", broj_elemenata(pocetak_reda.prvi));
break;
}
}
}
 
0

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dial.InfoSky.Net.



+2790 Profil

icon Re: zamolba i pomoc u c-u20.11.2005. u 22:56 - pre 224 meseci
Rešenje je priloženo u zip fajlu.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Prikačeni fajlovi
 
0

kole1108
Vk

Član broj: 74954
Poruke: 2
*.adsl.net.t-com.hr.

ICQ: 70511383


Profil

icon Re: z a m o l b a i p o m o c u c-u21.11.2005. u 15:18 - pre 224 meseci
Ej hvala na trudu ali to nije to, kao što sam napisao pomoću onog koda trebam napraviti nove datoteke tako da ide:

->> dodavanje na početak reda - PROG04_4_1.C
->> dodavanje na kraj reda - PROG04_4_2.C
->> dodavanje prema najvećem prioritetu - PROG04_4_3.C
->> dodavanje prema najmanjem prioritetu - PROG04_4_4.C
->> brisanje elemenata iz reda - PROG04_4_5.C

Znaći svaka datoteka da radi gore navedeno? Dal ima netko volje i živaca?
Hvala!
 
0

[es] :: C/C++ programiranje :: z a m o l b a i p o m o c u c-u
(Zaključana tema (lock), by passenger)

[ Pregleda: 1777 | Odgovora: 2 ] > FB > Twit

Postavi temu

Srodne teme
Kliknite za generisanje liste srodnih tema...
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.