Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

funkcija i zadatak (zadatak)
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
Bug
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 06. 04. 2003. (17:31:11)
Postovi: (1A9)16
Spol: muško
Sarma = la pohva - posuda
20 = 35 - 15
Lokacija: Kako kad!!

PostPostano: 11:47 ned, 10. 9. 2006    Naslov: funkcija i zadatak Citirajte i odgovorite

Da li bi mi netko mogao napisat ovu f-ju

Napisite funkciju ciji je prototip slijedeceg oblika

unsigned int rot_lijevo(unsigned int x, unsigned int k);

i koja za dane nenegativne cijele brojeve x i k vraca nenegativni cijeli broj ciji je binarni zapis dobiven rotacijom
binarnog zapisa od x za k mjesta ulijevo.
Napomena: Zadatak morate rijesiti bez koristenjapolja. Smijete pretpostaviti da vrijedi
sizeof(unsignedint)==4.

hvala

i imam jos jedan problem, molio bih da mi ljudi kazu sta ne valja ovdje, izbacuje mi gresku "non-lvalue" kod if petlje



[code:1]
/*Napisite program koji ucitava rijec sastavljenu od najvise 100 znakova A, B ili C, te provjerava ima li
ucitana rijec slijedeca svojstva:
– pocinje sa znakom A;
– sadrzi dva ili vise susjednih znakova B, ili ne sadrzi niti jedan znak C;
– ne zavrsava sa znakom B.
Ukoliko su sva navedena svojstva zadovoljena, program treba ispisati da, dok u protivnom slucaju treba ispisati ne.
Napomena: U programskom kodu smijete upotrijebiti samo jednu for, while ili do-while petlju.*/

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

int main()
{
int i, n;
char rijec[101];
char r;
printf("Ucitaj rijec od maximalno 100 znakova: ");
scanf("%s", r);
n=strlen(rijec);

for (i=0; i<n; i++)
{
if (rijec[0]='A' && (rijec[i]='B' && rijec[i+1]='B' || rijec[i]!='C') && rijec[n]!='B')
printf("Da");
else printf("Ne");
}

scanf("%%");
return 0;
}

[/code:1]
Da li bi mi netko mogao napisat ovu f-ju

Napisite funkciju ciji je prototip slijedeceg oblika

unsigned int rot_lijevo(unsigned int x, unsigned int k);

i koja za dane nenegativne cijele brojeve x i k vraca nenegativni cijeli broj ciji je binarni zapis dobiven rotacijom
binarnog zapisa od x za k mjesta ulijevo.
Napomena: Zadatak morate rijesiti bez koristenjapolja. Smijete pretpostaviti da vrijedi
sizeof(unsignedint)==4.

hvala

i imam jos jedan problem, molio bih da mi ljudi kazu sta ne valja ovdje, izbacuje mi gresku "non-lvalue" kod if petlje



Kod:

/*Napisite program koji ucitava rijec sastavljenu od najvise 100 znakova A, B ili C, te provjerava ima li
ucitana rijec slijedeca svojstva:
– pocinje sa znakom A;
– sadrzi dva ili vise susjednih znakova B, ili ne sadrzi niti jedan znak C;
– ne zavrsava sa znakom B.
Ukoliko su sva navedena svojstva zadovoljena, program treba ispisati da, dok u protivnom slucaju treba ispisati ne.
Napomena: U programskom kodu smijete upotrijebiti samo jednu for, while ili do-while petlju.*/

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

int main()
{
int i, n;
char rijec[101];
char r;
printf("Ucitaj rijec od maximalno 100 znakova: ");
scanf("%s", r);
n=strlen(rijec);

for (i=0; i<n; i++)
{
if (rijec[0]='A' && (rijec[i]='B' && rijec[i+1]='B' || rijec[i]!='C') && rijec[n]!='B')
      printf("Da");
else  printf("Ne");
}

scanf("%%");
return 0;
}




_________________
Everybody Dies...
Nobody is perfect...

Non scholae, sed vitae discimus
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
jakov
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 08. 2006. (20:03:41)
Postovi: (47)16
Spol: muško
Sarma = la pohva - posuda
= 8 - 0
Lokacija: evo me doma

PostPostano: 12:53 ned, 10. 9. 2006    Naslov: Citirajte i odgovorite

Ovo ti je ona funkcija:
unsigned int rot_lijevo(unsigned int x, unsigned int k){
int i;
unsigned int y = x, dio=0;
for (i=0; i<32-k; i++) y = y / 2;
dio = x % (unsigned int)pow(2, 32-k);
dio= dio*(unsigned int)pow(2, k);
return dio + y;
}
Ovo drugo ću sada pogledati.
Ovo ti je ona funkcija:
unsigned int rot_lijevo(unsigned int x, unsigned int k){
int i;
unsigned int y = x, dio=0;
for (i=0; i<32-k; i++) y = y / 2;
dio = x % (unsigned int)pow(2, 32-k);
dio= dio*(unsigned int)pow(2, k);
return dio + y;
}
Ovo drugo ću sada pogledati.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
jakov
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 08. 2006. (20:03:41)
Postovi: (47)16
Spol: muško
Sarma = la pohva - posuda
= 8 - 0
Lokacija: evo me doma

PostPostano: 13:55 ned, 10. 9. 2006    Naslov: Citirajte i odgovorite

Ne znam čemu ti služi char r. On se učitava s %c, a ne s %s. Ustvari, char r ti uopce ne treba vec umjesto scanf ("%s", r) trebas napisati scanf("%s", rijec). Tada će ti istek strlen imati smisla jer po tvojoj verziji rijec uopce nisi učitao. Nadalje, u if naredbama trebaš imati znak relacijeske jednakosti (==) umjesto znaka pridruživanja (=). Evo ti moje rjesenje (malo je spetljeno, ali radi). Dan je lijep. Uzivaj!

#include<stdio.h>
#include<string.h>
int main (void){
char rijec[100];
int da=0, br=0, i, n, br2=0;
printf ("Ucitajte rijec (max 100 znakova): ");
scanf ("%s", rijec);
n=strlen(rijec);
if (rijec[0] == 'A') da=0;
else goto kraj;
for (i=0; i<n-1; i++){
if (rijec[i]=='B' && rijec[i+1]=='B') br++;
if (rijec[i]=='C') br2++;
}
if (rijec[n-1]=='C')br2++;
if (br!=0 || br2==0) da =0; else goto kraj;
if (rijec[n-1]!='B')da = 0; else goto kraj;
if (!da) {printf ("Da."); goto kraj2;}
kraj : printf ("Ne.");
kraj2: scanf ("%%");
return 0;
}
Ne znam čemu ti služi char r. On se učitava s %c, a ne s %s. Ustvari, char r ti uopce ne treba vec umjesto scanf ("%s", r) trebas napisati scanf("%s", rijec). Tada će ti istek strlen imati smisla jer po tvojoj verziji rijec uopce nisi učitao. Nadalje, u if naredbama trebaš imati znak relacijeske jednakosti (==) umjesto znaka pridruživanja (=). Evo ti moje rjesenje (malo je spetljeno, ali radi). Dan je lijep. Uzivaj!

#include<stdio.h>
#include<string.h>
int main (void){
char rijec[100];
int da=0, br=0, i, n, br2=0;
printf ("Ucitajte rijec (max 100 znakova): ");
scanf ("%s", rijec);
n=strlen(rijec);
if (rijec[0] == 'A') da=0;
else goto kraj;
for (i=0; i<n-1; i++){
if (rijec[i]=='B' && rijec[i+1]=='B') br++;
if (rijec[i]=='C') br2++;
}
if (rijec[n-1]=='C')br2++;
if (br!=0 || br2==0) da =0; else goto kraj;
if (rijec[n-1]!='B')da = 0; else goto kraj;
if (!da) {printf ("Da."); goto kraj2;}
kraj : printf ("Ne.");
kraj2: scanf ("%%");
return 0;
}


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Bug
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 06. 04. 2003. (17:31:11)
Postovi: (1A9)16
Spol: muško
Sarma = la pohva - posuda
20 = 35 - 15
Lokacija: Kako kad!!

PostPostano: 14:38 ned, 10. 9. 2006    Naslov: Citirajte i odgovorite

Ali ima jedan problem kod tvoga programa, zapravo 2, ne smiju se koristiti [b]goto[/b] i program ne zadovoljava sve uvjete odjednom

ajde ak ti nije problem pogledat zast meni ispise da kad ukucam [b]C[/b]

[code:1]#include <stdio.h>
#include <string.h>

int main()
{
int i, n, br=0, br2=0;
char rijec[101];
printf("Ucitaj rijec od maximalno 100 znakova: ");
scanf("%s", rijec);
n=strlen(rijec);

for (i=0; i<n; i++)
{
if (rijec[0]=='A' && rijec[n-1]!='B') br++;
if (rijec[i]==rijec[i+1]=='B' || rijec[i]!='C') br2++;
}
if (br==0 || br2==0)
printf("Ne");
else
printf("Da");
scanf("%%");
return 0;
}[/code:1]
Ali ima jedan problem kod tvoga programa, zapravo 2, ne smiju se koristiti goto i program ne zadovoljava sve uvjete odjednom

ajde ak ti nije problem pogledat zast meni ispise da kad ukucam C

Kod:
#include <stdio.h>
#include <string.h>

int main()
{
int i, n, br=0, br2=0;
char rijec[101];
printf("Ucitaj rijec od maximalno 100 znakova: ");
scanf("%s", rijec);
n=strlen(rijec);

for (i=0; i<n; i++)
{
if (rijec[0]=='A' && rijec[n-1]!='B') br++;   
if (rijec[i]==rijec[i+1]=='B' || rijec[i]!='C') br2++;
}
if (br==0 || br2==0)
printf("Ne");
else
printf("Da");
scanf("%%");
return 0;
}



_________________
Everybody Dies...
Nobody is perfect...

Non scholae, sed vitae discimus
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 16:48 ned, 10. 9. 2006    Naslov: Citirajte i odgovorite

Meni, kad ucitam [tt]C[/tt], ispisuje [tt]Ne[/tt]. 8)



[b]Problem:[/b]
[tt]rijec[i]==rijec[i+1]=='B'[/tt] :-s

Kad stavis [tt]a = b = 1[/tt], onda je to [tt]a = (b = 1)[/tt], tj. [tt]b = 1; a = b;[/tt] (jer se pridruzivanje evaluira s desna na lijevo). :) Na isti nacin:
[tt]y = (rijec[i] == rijec[i+1] == 'B')[/tt] :arrow: [tt]y = ((rijec[i] == rijec[i+1]) == 'B')[/tt] (jer se [tt]==[/tt] evaluira s lijeva na desno) sto je kao da napises
[tt]x = (rijec[i] == rijec[i+1]); y = (x == 'B');[/tt]
I [tt]x[/tt] i [tt]y[/tt] su 0 ili 1, sto ce reci da je [tt]y[/tt] rezultat usporedbe 0 ili 1 s 'B', a to je uvijek laz ('B' ima ASCII vrijednost 66), dakle 0. :(

Dodatno, u zadnjem koraku [tt]for()[/tt] petlje je [tt]i + 1 == n[/tt], pa zadnji znak usporedjujes s 0, sto nije krivo, ali vjerojatno nesvjesno napravljeno i produciralo bi gresku da su uvjeti zadatka drugaciji. :?



Usput, [tt]if (rijec[0]=='A' && rijec[n-1]!='B') br++;[/tt] ne mora biti u petlji. :)
Meni, kad ucitam C, ispisuje Ne. Cool



Problem:
rijec[i]==rijec[i+1]=='B' Eh?

Kad stavis a = b = 1, onda je to a = (b = 1), tj. b = 1; a = b; (jer se pridruzivanje evaluira s desna na lijevo). Smile Na isti nacin:
y = (rijec[i] == rijec[i+1] == 'B') Arrow y = ((rijec[i] == rijec[i+1]) == 'B') (jer se == evaluira s lijeva na desno) sto je kao da napises
x = (rijec[i] == rijec[i+1]); y = (x == 'B');
I x i y su 0 ili 1, sto ce reci da je y rezultat usporedbe 0 ili 1 s 'B', a to je uvijek laz ('B' ima ASCII vrijednost 66), dakle 0. Sad

Dodatno, u zadnjem koraku for() petlje je i + 1 == n, pa zadnji znak usporedjujes s 0, sto nije krivo, ali vjerojatno nesvjesno napravljeno i produciralo bi gresku da su uvjeti zadatka drugaciji. Confused



Usput, if (rijec[0]=='A' && rijec[n-1]!='B') br++; ne mora biti u petlji. Smile



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
jakov
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 08. 2006. (20:03:41)
Postovi: (47)16
Spol: muško
Sarma = la pohva - posuda
= 8 - 0
Lokacija: evo me doma

PostPostano: 22:13 ned, 10. 9. 2006    Naslov: Citirajte i odgovorite

Meni program uredno radi kada učitam 'C', ispisuje 'Ne.' Ako te buni zašto u mom kodu ide [size=12][size=18]i[/size][/size] do n-1, to ti je jer pitaš kasnije za rijec[i+1], a za i=n-1 imaš rijec[n], a to je '\0'. Što se tiče naredbe goto, ne znam zašto je ne bih smio koristiti (premda je ona predviđena samo za ispitivanje grešaka, tako nam je bar rečeno na predavanju, ali ona se meni baš dopada), ali mislim da sam ovime malčice skratio rad programa, iako je na kraju ispao skroz spetljano i lako se pogubiš. Trebalo bi samo ubaciti onda jedan brojač koji će stalno biti na nuli i u slučaju da naiđeš na nešto što ne ispunjava zadane uvjete, samo ga povećati i na kraju s jednom if naredbom riješiti cijeli ispis. Naime, sad nemam vremena više, (a ni sutra), ali ako ne uspiješ, javi mi se pa ću ti ga napisati (u utorak) na drugi način. Ne volim tražiti greške u tuđim programima jer ne znam ideju pa se cijeli pogubim, ali i tu se trudim.
Meni program uredno radi kada učitam 'C', ispisuje 'Ne.' Ako te buni zašto u mom kodu ide [size=18]i[/size] do n-1, to ti je jer pitaš kasnije za rijec[i+1], a za i=n-1 imaš rijec[n], a to je '\0'. Što se tiče naredbe goto, ne znam zašto je ne bih smio koristiti (premda je ona predviđena samo za ispitivanje grešaka, tako nam je bar rečeno na predavanju, ali ona se meni baš dopada), ali mislim da sam ovime malčice skratio rad programa, iako je na kraju ispao skroz spetljano i lako se pogubiš. Trebalo bi samo ubaciti onda jedan brojač koji će stalno biti na nuli i u slučaju da naiđeš na nešto što ne ispunjava zadane uvjete, samo ga povećati i na kraju s jednom if naredbom riješiti cijeli ispis. Naime, sad nemam vremena više, (a ni sutra), ali ako ne uspiješ, javi mi se pa ću ti ga napisati (u utorak) na drugi način. Ne volim tražiti greške u tuđim programima jer ne znam ideju pa se cijeli pogubim, ali i tu se trudim.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
andreao
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 10. 02. 2005. (12:08:18)
Postovi: (46F)16
Sarma = la pohva - posuda
35 = 192 - 157
Lokacija: SK

PostPostano: 10:38 pon, 11. 9. 2006    Naslov: Citirajte i odgovorite

Pa nigdje nepiše u tom kolokviju da strikno [b]nesmiješ[/b] koristit goto naredbu. Znači možeš ju koristit! :D
Pa nigdje nepiše u tom kolokviju da strikno nesmiješ koristit goto naredbu. Znači možeš ju koristit! Very Happy



_________________
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail MSNM
jakov
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 08. 2006. (20:03:41)
Postovi: (47)16
Spol: muško
Sarma = la pohva - posuda
= 8 - 0
Lokacija: evo me doma

PostPostano: 14:04 pon, 11. 9. 2006    Naslov: Citirajte i odgovorite

Stigoh ja to danas pogledati i malo prepraviti. Dodao sam još jedan brojač i to je to. Nadam se da je sada u redu. Ako nešto nije jasno(posebno ovaj ispis na kraju), viči!
#include<stdio.h>
#include<string.h>
int main (void){
char rijec[100];
int da=0, br=0, i, n, b=0;
printf ("Ucitajte rijec (max 100 znakova): ");
scanf ("%s", rijec);
n=strlen(rijec);
if (rijec[0]=='A' && rijec[n-1]!='B') da = 0;
else da++;
for (i=0; i<n-1; i++){
if (rijec[i]=='B' && rijec[i+1]=='B') b++;
if (rijec[i]=='C') br++;
}
if (rijec[n-1]=='C') br++;
if (da==0 && (b || (!br))) printf ("Da.");
else printf ("Ne.");
scanf ("%%");
return 0;
}

Ugodan ostatak dana želim!
Stigoh ja to danas pogledati i malo prepraviti. Dodao sam još jedan brojač i to je to. Nadam se da je sada u redu. Ako nešto nije jasno(posebno ovaj ispis na kraju), viči!
#include<stdio.h>
#include<string.h>
int main (void){
char rijec[100];
int da=0, br=0, i, n, b=0;
printf ("Ucitajte rijec (max 100 znakova): ");
scanf ("%s", rijec);
n=strlen(rijec);
if (rijec[0]=='A' && rijec[n-1]!='B') da = 0;
else da++;
for (i=0; i<n-1; i++){
if (rijec[i]=='B' && rijec[i+1]=='B') b++;
if (rijec[i]=='C') br++;
}
if (rijec[n-1]=='C') br++;
if (da==0 && (b || (!br))) printf ("Da.");
else printf ("Ne.");
scanf ("%%");
return 0;
}

Ugodan ostatak dana želim!


[Vrh]
Korisnički profil Pošaljite privatnu poruku
mladac
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 24. 10. 2005. (22:46:14)
Postovi: (4D5)16
Spol: žensko
Sarma = la pohva - posuda
34 = 91 - 57
Lokacija: zg

PostPostano: 15:54 pon, 11. 9. 2006    Naslov: Citirajte i odgovorite

[quote="andreao"]Pa nigdje nepiše u tom kolokviju da strikno [b]nesmiješ[/b] koristit goto naredbu. Znači možeš ju koristit! :D[/quote]

mislim da je mislio zato što su nam je na predavanju iz c-a profesorica rekla da ju izbjegavamo, tj ako netreba da ju ne koristimo
andreao (napisa):
Pa nigdje nepiše u tom kolokviju da strikno nesmiješ koristit goto naredbu. Znači možeš ju koristit! Very Happy


mislim da je mislio zato što su nam je na predavanju iz c-a profesorica rekla da ju izbjegavamo, tj ako netreba da ju ne koristimo



_________________
potpis
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
andreao
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 10. 02. 2005. (12:08:18)
Postovi: (46F)16
Sarma = la pohva - posuda
35 = 192 - 157
Lokacija: SK

PostPostano: 17:06 pon, 11. 9. 2006    Naslov: Citirajte i odgovorite

Svaki lonac ima svoj poklopac.

Tak da znaš ti si moj. :D
Svaki lonac ima svoj poklopac.

Tak da znaš ti si moj. Very Happy



_________________
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail MSNM
suziQ
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 29. 05. 2005. (13:52:50)
Postovi: (2B)16
Spol: žensko
Sarma = la pohva - posuda
-1 = 1 - 2

PostPostano: 10:45 uto, 12. 9. 2006    Naslov: Citirajte i odgovorite

da ne otvaram topić...
jel mi može netko rješiti ovaj zadatak??

učitaj niz realnih brojeva dok se ne naiđe na nulu.tada nula više nije u nizu.napiši program koji vraća najmanju razliku susjednih brojeva x_i-1 - x_i.program treba napisati bez korištenja polja.

toliko koliko se sjećam zadatka,nadam se da nisam fulala
da ne otvaram topić...
jel mi može netko rješiti ovaj zadatak??

učitaj niz realnih brojeva dok se ne naiđe na nulu.tada nula više nije u nizu.napiši program koji vraća najmanju razliku susjednih brojeva x_i-1 - x_i.program treba napisati bez korištenja polja.

toliko koliko se sjećam zadatka,nadam se da nisam fulala



_________________
I Got Feeling, Blues is gonna be my only way
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 14:29 uto, 12. 9. 2006    Naslov: Citirajte i odgovorite

[quote="suziQ"]učitaj niz realnih brojeva dok se ne naiđe na nulu.tada nula više nije u nizu.napiši program koji vraća najmanju razliku susjednih brojeva x_i-1 - x_i.program treba napisati bez korištenja polja.[/quote]
Sto bi znacilo "[i]tada nula vise nije u nizu[/i]"?
suziQ (napisa):
učitaj niz realnih brojeva dok se ne naiđe na nulu.tada nula više nije u nizu.napiši program koji vraća najmanju razliku susjednih brojeva x_i-1 - x_i.program treba napisati bez korištenja polja.

Sto bi znacilo "tada nula vise nije u nizu"?



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
andreao
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 10. 02. 2005. (12:08:18)
Postovi: (46F)16
Sarma = la pohva - posuda
35 = 192 - 157
Lokacija: SK

PostPostano: 14:33 uto, 12. 9. 2006    Naslov: Citirajte i odgovorite

Pa vjerojatno da kad se ona učita da se nesmatra da je u nizu,tj. ak si ju napisao u nizu, program ju treba jednostavno zanemariti.
Pa vjerojatno da kad se ona učita da se nesmatra da je u nizu,tj. ak si ju napisao u nizu, program ju treba jednostavno zanemariti.



_________________
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail MSNM
andreao
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 10. 02. 2005. (12:08:18)
Postovi: (46F)16
Sarma = la pohva - posuda
35 = 192 - 157
Lokacija: SK

PostPostano: 15:06 uto, 12. 9. 2006    Naslov: Citirajte i odgovorite

@suziq:Vidi ovaj program.Jel to to šta tražiš?
#include<stdio.h>
#include<stdlib.h>

int main(){
int i,x,y,prvi,drugi,min1,j,min2,x1,y1;
printf("Upisite koliko brojeva zelite ucitati:");
scanf("%d",&i);
if(i==1) return 0;
printf("Upisite 1. i 2. broj a da nije 0: ");
scanf("%d %d",&x,&y);
if(x==0){
printf("Ucitajte ponovo 1. broj a da nije nula: ");
scanf("%d",&x);
}
if(y==0){
printf("Ucitajte ponovo 2. broj a da nije nula: ");
scanf("%d",&y);
}
if(x==0 && y==0){
printf("Ucitajte ponovo 1. i 2. broj: ");
scanf("%d %d",&x,&y);
}
prvi=x;
drugi=y;
min1=abs(prvi-drugi);
if(i==2){ printf("Brojevi sa najmanjom medusobnom razlikom su %d i %d.",
prvi,drugi); scanf("%%"); return 0;
}
for(j=3;j<=i;j++){
printf("Unesite %d. broj: ",j);
scanf("%d",&y);
if(y==0){
printf("Ucitajte ponovo 2. broj a da nije nula: ");
scanf("%d",&y);
}
prvi=drugi;
drugi=y;
min2=abs(prvi-drugi);
if(min2<=min1){
min1=min2;
x1=prvi;
y1=drugi;
}
}
printf("Najmanja razlika je %d izmedu %d i %d.",min1,x1,y1);
scanf("%%");
return 0;
}
@suziq:Vidi ovaj program.Jel to to šta tražiš?
#include<stdio.h>
#include<stdlib.h>

int main(){
int i,x,y,prvi,drugi,min1,j,min2,x1,y1;
printf("Upisite koliko brojeva zelite ucitati:");
scanf("%d",&i);
if(i==1) return 0;
printf("Upisite 1. i 2. broj a da nije 0: ");
scanf("%d %d",&x,&y);
if(x==0){
printf("Ucitajte ponovo 1. broj a da nije nula: ");
scanf("%d",&x);
}
if(y==0){
printf("Ucitajte ponovo 2. broj a da nije nula: ");
scanf("%d",&y);
}
if(x==0 && y==0){
printf("Ucitajte ponovo 1. i 2. broj: ");
scanf("%d %d",&x,&y);
}
prvi=x;
drugi=y;
min1=abs(prvi-drugi);
if(i==2){ printf("Brojevi sa najmanjom medusobnom razlikom su %d i %d.",
prvi,drugi); scanf("%%"); return 0;
}
for(j=3;j<=i;j++){
printf("Unesite %d. broj: ",j);
scanf("%d",&y);
if(y==0){
printf("Ucitajte ponovo 2. broj a da nije nula: ");
scanf("%d",&y);
}
prvi=drugi;
drugi=y;
min2=abs(prvi-drugi);
if(min2<=min1){
min1=min2;
x1=prvi;
y1=drugi;
}
}
printf("Najmanja razlika je %d izmedu %d i %d.",min1,x1,y1);
scanf("%%");
return 0;
}



_________________
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail MSNM
jakov
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 08. 2006. (20:03:41)
Postovi: (47)16
Spol: muško
Sarma = la pohva - posuda
= 8 - 0
Lokacija: evo me doma

PostPostano: 19:15 uto, 12. 9. 2006    Naslov: Citirajte i odgovorite

Andreo, mislim da ne smiješ na početku programa pitati koliko će brojeva biti u nizu. Ovako bih ja to napisao:

#include<stdio.h>
#include<stdlib.h>
int main(void){
int x, y, min, i = 3;
printf ("Ucitajte 1. broj: ");
scanf ("%d", &x);
if (x==0) exit (-1);
printf ("Ucitajte 2. broj: ");
scanf (" %d", &y);
if (y==0) exit (-1);
min = x - y;
while (x){
printf ("Ucitajte %d. broj: ", i++);
scanf (" %d", &x);
if (x==0){ printf ("\nNajmanja razlika je %d.", min); break;}
if (min > y - x) min = y - x;
y = x;
}
return 0;
}

(mogu se još eventualno dodati poruke o 'grešci' prije svake naredbe exit(-1), nešto tipa 'Ucitali ste premalo brojeva)
Andreo, mislim da ne smiješ na početku programa pitati koliko će brojeva biti u nizu. Ovako bih ja to napisao:

#include<stdio.h>
#include<stdlib.h>
int main(void){
int x, y, min, i = 3;
printf ("Ucitajte 1. broj: ");
scanf ("%d", &x);
if (x==0) exit (-1);
printf ("Ucitajte 2. broj: ");
scanf (" %d", &y);
if (y==0) exit (-1);
min = x - y;
while (x){
printf ("Ucitajte %d. broj: ", i++);
scanf (" %d", &x);
if (x==0){ printf ("\nNajmanja razlika je %d.", min); break;}
if (min > y - x) min = y - x;
y = x;
}
return 0;
}

(mogu se još eventualno dodati poruke o 'grešci' prije svake naredbe exit(-1), nešto tipa 'Ucitali ste premalo brojeva)


[Vrh]
Korisnički profil Pošaljite privatnu poruku
andreao
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 10. 02. 2005. (12:08:18)
Postovi: (46F)16
Sarma = la pohva - posuda
35 = 192 - 157
Lokacija: SK

PostPostano: 8:00 pet, 15. 9. 2006    Naslov: Citirajte i odgovorite

To nije navela pa sam pretpostavila da se može tako. :wink:
To nije navela pa sam pretpostavila da se može tako. Wink



_________________
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail MSNM
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan