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

uporedjivanje tri broja

[es] :: C/C++ programiranje :: uporedjivanje tri broja

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mordor
Vladimir Cvetic
/dev/null

Član broj: 2797
Poruke: 420
*.beotel.net

Jabber: cvele@default.co.yu
Sajt: www.knowbies.com


Profil

icon uporedjivanje tri broja19.03.2004. u 16:11 - pre 244 meseci
Kapiram da je ovo verovatno jednostavno ali ja nikako nemogu da shvatim kako je ovo resenje zadatka... Tako da bih zamolio da mi ga neko objasni...

Citat:

Sastaviti program za uredjivanje 3 realna broja po ne opadajucem redosledu.


Code:

#include<stdio.h>
main()
{

double a, b, c, p;

printf ("Unesite a, b, c:");
scanf ("%lf%lf%lf", &a, &b, &c);

if (a>b) { p=a; a=b; b=p }
if (a>c) { p=a; a=c; c=p }
if (b>c) { p=b; b=c; c=p }

printf ("Urednjeno:%f %f %f", a, b, c);

}


Unapred hvala!
 
Odgovor na temu

Ivand
Ivan Dimitrijević
...
yu/pa

Član broj: 17
Poruke: 2161
*.tehnicom.net

Sajt: www.webmanijak.com


+4 Profil

icon Re: uporedjivanje tri broja19.03.2004. u 18:45 - pre 244 meseci
inače ovaj gore navedeni kod čak i neradi ;)

ovo je ispravljena verzija koja radi
Code:

#include<stdio.h>
main()
{

double a, b, c, p;

printf ("Unesite a, b, c:");
scanf ("%lf,%lf,%lf", &a, &b, &c);

if (a>b) { p=a; a=b; b=p; }
if (a>c) { p=a; a=c; c=p; }
if (b>c) { p=b; b=c; c=p; }

printf ("Urednjeno:%f %f %f", a, b, c);

}


nisu to neke krupne greške falilo ti je tri ; i još sam dodao zareze u unosu brojeva

a što se tiče shvatanja , unesi recimo 4,5,1 pa idi red po red i gledaj koji će se redovi
izvršavati i kako će se menjati vrednosti a,b,c i p i skapiraćeš

 
Odgovor na temu

mordor
Vladimir Cvetic
/dev/null

Član broj: 2797
Poruke: 420
*.dsl.de.colt.net

Jabber: cvele@default.co.yu
Sajt: www.knowbies.com


Profil

icon Re: Re: uporedjivanje tri broja20.03.2004. u 00:08 - pre 244 meseci
kolko ja vidim ova tvoja verzija neradi... :( izbacuje neke nebulozne brojeve...

IN > 1 2 3
OUT> Urednjeno:-92559631349317831000000000000000000000000000000000000000000000.000000
-92559631349317831000000000000000000000000000000000000000000000.000000 1.000000
 
Odgovor na temu

Revisor
Sofija - NBGD

Član broj: 18843
Poruke: 59
*.matf.bg.ac.yu

Sajt: alas.matf.bg.ac.yu/~mr021..


Profil

icon Re: Re: uporedjivanje tri broja20.03.2004. u 09:47 - pre 244 meseci
Koliko ja vidim, problem je samo u I/O ne i u algoritmu.
Nadjite oznaku za manipulaciju sa double ili jednostavno
koristite float ILI jednostavno predjite na iostream.
Restless one,
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.smin.sezampro.yu.



Profil

icon Re: Re: uporedjivanje tri broja20.03.2004. u 22:55 - pre 244 meseci
Citat:
mordor:Kapiram da je ovo verovatno jednostavno ali ja nikako nemogu da shvatim kako je ovo resenje zadatka... Tako da bih zamolio da mi ga neko objasni...

Kako nisi konkretno naveo sta ti nije jasno, pretpostavljam da je to svrha privremene promenljive "p".
Ako se npr. kao ulazne vrednosti unesu brojevi: 11(a), 33(b), 22(c). U prvom i drugom "if" poredjenju (u navedenom programu) vraca se netacno (nije 11 > 33, kao ni 11 > 22), pa se izostavlja zamena vrednosti u promenljivama. U trecem "if" poredjenju, uslov je zadovoljen i zamenjuju se vrednosti u promenljivama b i c, koristeci upravo privremenu promenljivu "p" koja je sluzi da bi se sacuvala vrednost jedne od dve promenljive, cije se vrednosti zamenjuju.

Sto se tice "izbacivanja nebuloznih brojeva", nije do poziva funkcije printf() vec scanf(). Naime,
Code:
canf ("%lf%lf%lf", &a, &b, &c);
treba zameniti sa
Code:
scanf ("%lf", &a);
scanf ("%lf", &b);
scanf ("%lf", &c);


Ako ti zamena vrednosti u promenljivama jos uvek nije jasna, program mozes napisati i bez njega s tim sto (npr. u sledece programu) resenje bilo manje efikasno nego u prethodnom (velicina programa i brzina izvrsavanja, ako je to u opste bitno za ovako mali program):
Code:
#include<stdio.h>
int main() {
double a, b, c;

printf ("Unesite a, b, c:");
scanf ("%lf", &a);
scanf ("%lf", &b);
scanf ("%lf", &c);

/*if (a>b) { p=a; a=b; b=p; }
if (a>c) { p=a; a=c; c=p; }
if (b>c) { p=b; b=c; c=p; }*/

if (a > b && a > c)
        if (b > c) printf("%lf %lf %lf\n", c, b, a);
        else printf("%lf %lf %lf\n", b, c, a);
if (b > a && b > c)
        if (a > c) printf("%lf %lf %lf\n", c, a, b);
        else printf("%lf %lf %lf\n", a, c, b);
if (c > a && c > b)
        if (a > b) printf("%lf %lf %lf\n", b, a, c);
        else printf("%lf %lf %lf\n", a, b, c);

/*printf ("Urednjeno:%f %f %f\n", a, b, c);*/
return 0;
}

 
Odgovor na temu

mordor
Vladimir Cvetic
/dev/null

Član broj: 2797
Poruke: 420
*.beotel.net

Jabber: cvele@default.co.yu
Sajt: www.knowbies.com


Profil

icon Re: Re: uporedjivanje tri broja21.03.2004. u 21:26 - pre 244 meseci
e care! hvala :) !

 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
*.ppp-01.sa.lol.ba.



+13 Profil

icon Re: Re: uporedjivanje tri broja22.03.2004. u 15:31 - pre 244 meseci
Ako ne grijesim moze i ovako u C...



#include <stdio.h>
int main(void)
{
int a, b, c, d, e, m;
printf("Unesi pet brojeva: ");
scanf("%d %d %d %d %d", &a, &b, &c, &d, &e);
m = a;
if(b < m) m = b;
if(c < m) m = c;
if(d < m) m = d;
if(e < m) m = e;
printf("Najmanji od tih brojeva je: %d\n", m);
return 0;
}


ili u C++


#include <iostream.h>
int main(void)
{
int a, b, c, d, e, m;
cout<<"Unesi pet brojeva: ";
cin>>a >>b >>c >>d >>e;
m = a;
if(b < m) m = b;
if(c < m) m = c;
if(d < m) m = d;
if(e < m) m = e;
cout<<"Najmanji od tih brojeva je:\n” << m;
return 0;
}


 
Odgovor na temu

[es] :: C/C++ programiranje :: uporedjivanje tri broja

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

Postavi temu Odgovori

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