Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
Milojko Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol: 
Lokacija: Hilbertov hotel
|
Postano: 22:39 sri, 10. 6. 2009 Naslov: Opet me C nervira- strukture |
|
|
[code:1]#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
typedef struct _automobil {
char ime[77];
int cijena;
struct _automobil *next;
} automobil;
int main() {
automobil *first = NULL, *pom, *pom2;
int prosjek = 0, n = 0;
char c;
do {
automobil *new;
new = (automobil*)malloc(sizeof(automobil));
printf("ime auta: "); scanf(" %[^\n]", new->ime);
printf("cijena automobila: "); scanf("%d", &new->cijena);
if (first) {
pom = pom->next = new;
}
else pom = first = new;
do {
printf("Zelite li nastaviti? \n");
printf("d/n?");
scanf(" %c", &c);
c = tolower(c);
} while (c != 'd' && c != 'n');
while (c == 'd');
pom->next = NULL;
for (pom = first; pom; pom = pom->next) {
prosjek += pom->cijena;
++n;
}
prosjek /= n;
printf("Ukupno automobila: %d\n", n);
printf("Prosjecna cijena: %d\n", prosjek);
printf("Nadprosjecno skupi automobili: \n");
for (pom = first; pom; pom = pom->next) {
if (pom->cijena > prosjek)
printf(" %s, %d\n", pom->ime, pom->cijena);
}
for (pom = first; pom; pom = pom2) {
pom2 = pom->next;
free(pom);
}
scanf("%%");
return 0;
}[/code:1]
skoro pa direktan c/p iz skripte, do na detalje oko ispisa i takvih stvari.
u liniji [tt]automobil *new[/tt] kaže "expected primary-expression before "*" token"
onda u linijama (ova je 16) (uključujući i 16.) 17, 18, 19, 21, 23 kaže "expected identifier before "neki" token" neki iz skupa {;, ->, =}
ne mogu se više snaći di sam se zezno. nešt gadno ne valja, il sa mnom, il sa compilerom.
Kod: | #include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
typedef struct _automobil {
char ime[77];
int cijena;
struct _automobil *next;
} automobil;
int main() {
automobil *first = NULL, *pom, *pom2;
int prosjek = 0, n = 0;
char c;
do {
automobil *new;
new = (automobil*)malloc(sizeof(automobil));
printf("ime auta: "); scanf(" %[^\n]", new->ime);
printf("cijena automobila: "); scanf("%d", &new->cijena);
if (first) {
pom = pom->next = new;
}
else pom = first = new;
do {
printf("Zelite li nastaviti? \n");
printf("d/n?");
scanf(" %c", &c);
c = tolower(c);
} while (c != 'd' && c != 'n');
while (c == 'd');
pom->next = NULL;
for (pom = first; pom; pom = pom->next) {
prosjek += pom->cijena;
++n;
}
prosjek /= n;
printf("Ukupno automobila: %d\n", n);
printf("Prosjecna cijena: %d\n", prosjek);
printf("Nadprosjecno skupi automobili: \n");
for (pom = first; pom; pom = pom->next) {
if (pom->cijena > prosjek)
printf(" %s, %d\n", pom->ime, pom->cijena);
}
for (pom = first; pom; pom = pom2) {
pom2 = pom->next;
free(pom);
}
scanf("%%");
return 0;
} |
skoro pa direktan c/p iz skripte, do na detalje oko ispisa i takvih stvari.
u liniji automobil *new kaže "expected primary-expression before "*" token"
onda u linijama (ova je 16) (uključujući i 16.) 17, 18, 19, 21, 23 kaže "expected identifier before "neki" token" neki iz skupa {;, →, =}
ne mogu se više snaći di sam se zezno. nešt gadno ne valja, il sa mnom, il sa compilerom.
_________________ Sedam je prost broj
Bolonja je smeće i to pod hitno treba mijenjat
|
|
[Vrh] |
|
Luuka Forumaš(ica)


Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol: 
Lokacija: Hakuna Matata
|
|
[Vrh] |
|
Milojko Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol: 
Lokacija: Hilbertov hotel
|
Postano: 22:51 sri, 10. 6. 2009 Naslov: |
|
|
tnx Luuka
btw, pitanje, zašto to nije radilo kao C++ source file? jeli to stvar razlika u C-u i C++-u ili što?
tnx Luuka
btw, pitanje, zašto to nije radilo kao C++ source file? jeli to stvar razlika u C-u i C++-u ili što?
_________________ Sedam je prost broj
Bolonja je smeće i to pod hitno treba mijenjat
|
|
[Vrh] |
|
Luuka Forumaš(ica)


Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol: 
Lokacija: Hakuna Matata
|
|
[Vrh] |
|
Milojko Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol: 
Lokacija: Hilbertov hotel
|
Postano: 12:01 čet, 11. 6. 2009 Naslov: |
|
|
opet ja, da ne otvaram ponovo topice, sljedeći kod, nakon učitavanja liste razlomaka, nakon učitavanja brojeva x, y, i nakon što lupim enter, javi mi se onaj prozorčić i veli kako ne može čitati određenu adresu. kod je save-an u .c formatu, tak da, tu nema problema, negdje sam ja zabrljavio izgleda.
[code:1]
typedef struct _razlomak {
int brojnik, nazivnik;
struct _razlomak *next;
} razlomak;
razlomak *delete (razlomak *first, int x, int y) {
razlomak *t;
if (!first) return NULL;
if (first->brojnik*y == first->nazivnik*x) {
t = first->next;
free(first);
return t;
}
else {
razlomak *del;
t = first;
while (t->next && t->next->nazivnik*x !=
t->next->brojnik*y)
t = t->next;
if (t->next) {
del = t->next;
t->next = del->next;
free(del);
}
return first;
}
}
int main() {
razlomak *first = NULL, *pom, *pom2;
int x, y;
char c;
do {
razlomak *new = (razlomak*)malloc(sizeof(razlomak));
printf("Brojnik: "); scanf("%d", new->brojnik);
printf("Nazivnik: "); scanf("%d", new->nazivnik);
if (first) pom = pom->next = new;
else pom = first = new;
do {
printf("Ako zelite nastaviti ucitavati razlomke stisnite d");
printf(" u suprotnom odaberite n: \n");
scanf(" %c", &c);
c = tolower(c);
} while (c != 'd' && c != 'n');
} while (c == 'd');
printf("Unesite x, y: ");
printf("x = "); scanf("%d", &x);
printf("y = "); scanf("%d", &y);
first = delete(first, x, y);
printf("Izmjenjena lista:\n");
for (pom = first; pom; pom = pom->next)
printf("%d/%d", pom->brojnik, pom->nazivnik);
for (pom = first; pom; pom = pom2) {
pom2 = pom->next;
free(pom);
}
scanf("%%");
return 0;
}[/code:1]
opet ja, da ne otvaram ponovo topice, sljedeći kod, nakon učitavanja liste razlomaka, nakon učitavanja brojeva x, y, i nakon što lupim enter, javi mi se onaj prozorčić i veli kako ne može čitati određenu adresu. kod je save-an u .c formatu, tak da, tu nema problema, negdje sam ja zabrljavio izgleda.
Kod: |
typedef struct _razlomak {
int brojnik, nazivnik;
struct _razlomak *next;
} razlomak;
razlomak *delete (razlomak *first, int x, int y) {
razlomak *t;
if (!first) return NULL;
if (first->brojnik*y == first->nazivnik*x) {
t = first->next;
free(first);
return t;
}
else {
razlomak *del;
t = first;
while (t->next && t->next->nazivnik*x !=
t->next->brojnik*y)
t = t->next;
if (t->next) {
del = t->next;
t->next = del->next;
free(del);
}
return first;
}
}
int main() {
razlomak *first = NULL, *pom, *pom2;
int x, y;
char c;
do {
razlomak *new = (razlomak*)malloc(sizeof(razlomak));
printf("Brojnik: "); scanf("%d", new->brojnik);
printf("Nazivnik: "); scanf("%d", new->nazivnik);
if (first) pom = pom->next = new;
else pom = first = new;
do {
printf("Ako zelite nastaviti ucitavati razlomke stisnite d");
printf(" u suprotnom odaberite n: \n");
scanf(" %c", &c);
c = tolower(c);
} while (c != 'd' && c != 'n');
} while (c == 'd');
printf("Unesite x, y: ");
printf("x = "); scanf("%d", &x);
printf("y = "); scanf("%d", &y);
first = delete(first, x, y);
printf("Izmjenjena lista:\n");
for (pom = first; pom; pom = pom->next)
printf("%d/%d", pom->brojnik, pom->nazivnik);
for (pom = first; pom; pom = pom2) {
pom2 = pom->next;
free(pom);
}
scanf("%%");
return 0;
} |
_________________ Sedam je prost broj
Bolonja je smeće i to pod hitno treba mijenjat
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
Milojko Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol: 
Lokacija: Hilbertov hotel
|
Postano: 12:21 čet, 11. 6. 2009 Naslov: |
|
|
traži dalje :) nije u tome greška, čini se (a sam glup, nemog vjerovat da nisam stavio taj [tt]&[/tt])
ispravio sam taj dio koda, nije to. btw, jel mi onda nebi trebalo javljati error odmah pri učitavanju prvog razlomka?
izgleda da sam fulao negdje u funkciji [tt]delete()[/tt] ili dalje u kodu.
[quote="vsego"](mdoko bi ti rekao i da ne postoji .c format, nego snimanje s .c ekstenzijom Razz)[/quote]
dobro dobro, to sam i mislio[/tt]
traži dalje nije u tome greška, čini se (a sam glup, nemog vjerovat da nisam stavio taj &)
ispravio sam taj dio koda, nije to. btw, jel mi onda nebi trebalo javljati error odmah pri učitavanju prvog razlomka?
izgleda da sam fulao negdje u funkciji delete() ili dalje u kodu.
vsego (napisa): | (mdoko bi ti rekao i da ne postoji .c format, nego snimanje s .c ekstenzijom Razz) |
dobro dobro, to sam i mislio[/tt]
_________________ Sedam je prost broj
Bolonja je smeće i to pod hitno treba mijenjat
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
Milojko Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol: 
Lokacija: Hilbertov hotel
|
Postano: 13:20 čet, 11. 6. 2009 Naslov: |
|
|
:superctebo: :twisted: :evil:
u međuvremenu sam natipko još jedan program i opet nije radilo, isto veli o adresi, kad ono..........
tnx vsego :drinking:
btw, gore pastani program ne radi kako bi trebao, neke koji zadovoljavaju uvjet briše, neke ne. ma......... neda mise sad tražit još kak da to popravim.
u međuvremenu sam natipko još jedan program i opet nije radilo, isto veli o adresi, kad ono..........
tnx vsego
btw, gore pastani program ne radi kako bi trebao, neke koji zadovoljavaju uvjet briše, neke ne. ma......... neda mise sad tražit još kak da to popravim.
_________________ Sedam je prost broj
Bolonja je smeće i to pod hitno treba mijenjat
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
Milojko Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol: 
Lokacija: Hilbertov hotel
|
|
[Vrh] |
|
lucika Forumaš(ica)


Pridružen/a: 22. 11. 2007. (17:52:27) Postovi: (12F)16
Spol: 
|
Postano: 2:31 pet, 12. 6. 2009 Naslov: |
|
|
[code:1]
/*2. (a) Denirajte tip pravokutnik za pohranu podatka o jednom pravokutniku u R2 (odredenom koordinatama dva
suprotna vrha (x1; y1) i (x2; y2), sa stranicama koje su paralelne apscisi i ordinati), tako da bude moguca
deklaracija pravokutnik p;. U strukturi smiju biti samo polja koja su nuzna za rjesenje ovog zadatka.
Nadalje, denirajte tri funkcije:
(b) jednu koja kao argument prihvaca jedan pravokutnik, te kao povratnu vrijednost vraca povrsinu tog pravo-
kutnika (|x1-x2| * |y1-y2|).
(c) jednu koja kao varijabilni argument prihvaca jedan pravokutnik i dva realna broja a i b, te ga zamjenjuje s
pravokutnikom koji ce mu biti simetrican u odnosu na tocku (a, b) ((x,y) -> (2a-x, 2b-y)). Funkcija ne
vraca nikakvu vrijednost.
(d) jednu koja kao argument prihvaca niz pravokutnika koje sortira uzlazno po povrsini.
Za sve tri funkcije napisite i primjere poziva.
*/
#include<stdio.h>
#include<math.h>
typedef struct{
double x1, x2, y1, y2;
}pravokutnik;
double funkcijaB( pravokutnik p){
return ( fabs(p.x1 - p.x2) * fabs(p.y1 - p.y2) );
}
void funkcijaC( pravokutnik *p, double a, double b){
p->x1 = 2*a - p->x1;
p->x2 = 2*a - p->x2;
p->y1 = 2*b - p->y1;
p->y2 = 2*b - p->y2;
}
void funkcijaD( pravokutnik p[], int n){
int i, j;
pravokutnik temp;
for (i=0; i<n; i++)
for(j=i+1; j<n; j++)
if( funkcijaB ( p[i])> funkcijaB(p[j]) )
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
void ispis_pravokutnika(pravokutnik p) {
printf("(%g,%g)--(%g,%g)", p.x1, p.y1, p.x2, p.y2);
}
void ispis_niza(pravokutnik p[], int n) {
int i;
for (i = 0; i < n; ++i) {
printf(" %d: ", i+1);
ispis_pravokutnika(p[i]);
printf("\t%g\n", funkcijaB(p[i]));
}
}
int main(){
pravokutnik p={ 5, 7, 2, 3};
double P;
pravokutnik niz[]={ {1, 1, 2, 2}, p, {7, 6, 7, 6} };
int n=sizeof(niz) / sizeof(pravokutnik);
P=funkcijaB(p);
printf("%lg\n", P);
funkcijaC(&p, 4, 8);
printf("x1=%lg, x2=%lg, y1=%lg, y2=%lg", p.x1, p.x2, p.y1, p.y2);
funkcijaD(niz, n);
printf("Niz nakon sorta:\n");
ispis_niza(niz, n);
scanf("%%");
return 0;
}
[/code:1]
kad compaliram, buni se i kaže: " too many arguments to function `void funkcijaD(pravokutnik*, int)' "
kaj ne valja :?:
PS: jel mogu negdje uključit da mi sastrane piše koja je linija koda da ne moram brojat svaki put...? :roll:
Kod: |
/*2. (a) Denirajte tip pravokutnik za pohranu podatka o jednom pravokutniku u R2 (odredenom koordinatama dva
suprotna vrha (x1; y1) i (x2; y2), sa stranicama koje su paralelne apscisi i ordinati), tako da bude moguca
deklaracija pravokutnik p;. U strukturi smiju biti samo polja koja su nuzna za rjesenje ovog zadatka.
Nadalje, denirajte tri funkcije:
(b) jednu koja kao argument prihvaca jedan pravokutnik, te kao povratnu vrijednost vraca povrsinu tog pravo-
kutnika (|x1-x2| * |y1-y2|).
(c) jednu koja kao varijabilni argument prihvaca jedan pravokutnik i dva realna broja a i b, te ga zamjenjuje s
pravokutnikom koji ce mu biti simetrican u odnosu na tocku (a, b) ((x,y) -> (2a-x, 2b-y)). Funkcija ne
vraca nikakvu vrijednost.
(d) jednu koja kao argument prihvaca niz pravokutnika koje sortira uzlazno po povrsini.
Za sve tri funkcije napisite i primjere poziva.
*/
#include<stdio.h>
#include<math.h>
typedef struct{
double x1, x2, y1, y2;
}pravokutnik;
double funkcijaB( pravokutnik p){
return ( fabs(p.x1 - p.x2) * fabs(p.y1 - p.y2) );
}
void funkcijaC( pravokutnik *p, double a, double b){
p->x1 = 2*a - p->x1;
p->x2 = 2*a - p->x2;
p->y1 = 2*b - p->y1;
p->y2 = 2*b - p->y2;
}
void funkcijaD( pravokutnik p[], int n){
int i, j;
pravokutnik temp;
for (i=0; i<n; i++)
for(j=i+1; j<n; j++)
if( funkcijaB ( p[i])> funkcijaB(p[j]) )
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
void ispis_pravokutnika(pravokutnik p) {
printf("(%g,%g)--(%g,%g)", p.x1, p.y1, p.x2, p.y2);
}
void ispis_niza(pravokutnik p[], int n) {
int i;
for (i = 0; i < n; ++i) {
printf(" %d: ", i+1);
ispis_pravokutnika(p[i]);
printf("\t%g\n", funkcijaB(p[i]));
}
}
int main(){
pravokutnik p={ 5, 7, 2, 3};
double P;
pravokutnik niz[]={ {1, 1, 2, 2}, p, {7, 6, 7, 6} };
int n=sizeof(niz) / sizeof(pravokutnik);
P=funkcijaB(p);
printf("%lg\n", P);
funkcijaC(&p, 4, 8);
printf("x1=%lg, x2=%lg, y1=%lg, y2=%lg", p.x1, p.x2, p.y1, p.y2);
funkcijaD(niz, n);
printf("Niz nakon sorta:\n");
ispis_niza(niz, n);
scanf("%%");
return 0;
}
|
kad compaliram, buni se i kaže: " too many arguments to function `void funkcijaD(pravokutnik*, int)' "
kaj ne valja
PS: jel mogu negdje uključit da mi sastrane piše koja je linija koda da ne moram brojat svaki put...?
Zadnja promjena: lucika; 3:30 pet, 12. 6. 2009; ukupno mijenjano 1 put.
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
lucika Forumaš(ica)


Pridružen/a: 22. 11. 2007. (17:52:27) Postovi: (12F)16
Spol: 
|
|
[Vrh] |
|
Luuka Forumaš(ica)


Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol: 
Lokacija: Hakuna Matata
|
Postano: 11:45 pet, 12. 6. 2009 Naslov: |
|
|
Falilo ti je par zagrada, i i ide do n-1, ne do n... evo ti samo ta fja, ostalo je ok:
[code:1]void funkcijaD( pravokutnik p[], int n){
int i, j;
pravokutnik temp;
for (i=0; i<n-1; i++)
for(j=i+1; j<n; j++)
if( funkcijaB ( p[i])> funkcijaB(p[j]) )
{
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}[/code:1]
A da ti prikazuje linije odi ovako (pretp da radiš u devcpp-u):
tools-editor options-display-line numbers :D
Falilo ti je par zagrada, i i ide do n-1, ne do n... evo ti samo ta fja, ostalo je ok:
Kod: | void funkcijaD( pravokutnik p[], int n){
int i, j;
pravokutnik temp;
for (i=0; i<n-1; i++)
for(j=i+1; j<n; j++)
if( funkcijaB ( p[i])> funkcijaB(p[j]) )
{
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
} |
A da ti prikazuje linije odi ovako (pretp da radiš u devcpp-u):
tools-editor options-display-line numbers
_________________ "Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy 
|
|
[Vrh] |
|
lucika Forumaš(ica)


Pridružen/a: 22. 11. 2007. (17:52:27) Postovi: (12F)16
Spol: 
|
|
[Vrh] |
|
Milojko Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol: 
Lokacija: Hilbertov hotel
|
Postano: 15:28 pet, 12. 6. 2009 Naslov: |
|
|
u attach-u je kod. javlja mi "linker error"
u attach-u je kod. javlja mi "linker error"
_________________ Sedam je prost broj
Bolonja je smeće i to pod hitno treba mijenjat
Description: |
|
 Download |
Filename: |
7,13.c |
Filesize: |
1.05 KB |
Downloaded: |
106 Time(s) |
|
|
[Vrh] |
|
Luuka Forumaš(ica)


Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol: 
Lokacija: Hakuna Matata
|
|
[Vrh] |
|
Milojko Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol: 
Lokacija: Hilbertov hotel
|
Postano: 16:02 pet, 12. 6. 2009 Naslov: |
|
|
ma jooj, tnx Luuka. vidio sma da to kaže, al, nisam ni pogledao u taj dio koda. [url=http://www.nba.com/video/channels/playoffs/2009/06/12/nba_20090611_gm4_superhilite.nba/]naporna noć[/url] :evil:
edit: btw, nisam ni zatvorio listu nakon učitavanja, tak da je tu i druga greška :)
ma jooj, tnx Luuka. vidio sma da to kaže, al, nisam ni pogledao u taj dio koda. naporna noć
edit: btw, nisam ni zatvorio listu nakon učitavanja, tak da je tu i druga greška
_________________ Sedam je prost broj
Bolonja je smeće i to pod hitno treba mijenjat
|
|
[Vrh] |
|
lucika Forumaš(ica)


Pridružen/a: 22. 11. 2007. (17:52:27) Postovi: (12F)16
Spol: 
|
Postano: 1:07 sub, 13. 6. 2009 Naslov: |
|
|
it's me again! :)
zakaj sljedeći program ne radi? izbacuje mi da je prosjek = -1 (što je krivo) a onda niti ne ispiše aute koji su skuplji od prosjeka.
[code:1]
/*
Zadatak 7.1. Napiˇsite program koji uˇcitava listu automobila (za
svakoga treba uˇcitati naziv (string do 30 znakova) i cijenu (cijeli broj)).
Program treba ispisati one automobile (naziv i cijenu) koji su skuplji
od prosjeka.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct __cvor
{
char naziv[ 31 ];
int cijena;
struct __cvor *next;
} cvor;
int main( void )
{
cvor *L = NULL, *novi, *tren;
int brojCvorova;
double prosjek=0;
while( 1 )
{
char naziv[ 31 ];
int cijena;
scanf( " %[^\n]", naziv );
if( strcmp( naziv, "kraj" ) == 0 )
break;
scanf( "%d", &cijena );
novi = ( cvor * ) malloc( sizeof( cvor ) );
novi->cijena = cijena;
strcpy( novi->naziv, naziv );
novi->next = L;
L = novi;
}
brojCvorova = 0;
for( tren = L; tren != NULL; tren = tren->next )
{
++brojCvorova;
prosjek += tren->cijena;
}
prosjek /= brojCvorova;
printf("Prosjek: %g\n", prosjek);
printf( "Skuplji od prosjeka su: " );
for( tren = L; tren != NULL; tren = tren->next )
if( tren->cijena > prosjek )
printf( " %s ", tren->naziv );
printf( "\n" );
// oslobadjanje memorije koju zauzima lista
while( L != NULL )
{
cvor *temp = L->next;
free( L );
L = temp;
}
scanf("%%");
return 0;
}
[/code:1]
it's me again!
zakaj sljedeći program ne radi? izbacuje mi da je prosjek = -1 (što je krivo) a onda niti ne ispiše aute koji su skuplji od prosjeka.
Kod: |
/*
Zadatak 7.1. Napiˇsite program koji uˇcitava listu automobila (za
svakoga treba uˇcitati naziv (string do 30 znakova) i cijenu (cijeli broj)).
Program treba ispisati one automobile (naziv i cijenu) koji su skuplji
od prosjeka.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct __cvor
{
char naziv[ 31 ];
int cijena;
struct __cvor *next;
} cvor;
int main( void )
{
cvor *L = NULL, *novi, *tren;
int brojCvorova;
double prosjek=0;
while( 1 )
{
char naziv[ 31 ];
int cijena;
scanf( " %[^\n]", naziv );
if( strcmp( naziv, "kraj" ) == 0 )
break;
scanf( "%d", &cijena );
novi = ( cvor * ) malloc( sizeof( cvor ) );
novi->cijena = cijena;
strcpy( novi->naziv, naziv );
novi->next = L;
L = novi;
}
brojCvorova = 0;
for( tren = L; tren != NULL; tren = tren->next )
{
++brojCvorova;
prosjek += tren->cijena;
}
prosjek /= brojCvorova;
printf("Prosjek: %g\n", prosjek);
printf( "Skuplji od prosjeka su: " );
for( tren = L; tren != NULL; tren = tren->next )
if( tren->cijena > prosjek )
printf( " %s ", tren->naziv );
printf( "\n" );
// oslobadjanje memorije koju zauzima lista
while( L != NULL )
{
cvor *temp = L->next;
free( L );
L = temp;
}
scanf("%%");
return 0;
}
|
Zadnja promjena: lucika; 3:00 sub, 13. 6. 2009; ukupno mijenjano 1 put.
|
|
[Vrh] |
|
|