[ mordor @ 19.03.2004. 16:11 ] @
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!
[ Ivand @ 19.03.2004. 18:45 ] @
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š
[ mordor @ 20.03.2004. 00:08 ] @
kolko ja vidim ova tvoja verzija neradi... :( izbacuje neke nebulozne brojeve...

IN > 1 2 3
OUT> Urednjeno:-92559631349317831000000000000000000000000000000000000000000000.000000
-92559631349317831000000000000000000000000000000000000000000000.000000 1.000000
[ Revisor @ 20.03.2004. 09:47 ] @
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.
[ Milan Aksic @ 20.03.2004. 22:55 ] @
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;
}

[ mordor @ 21.03.2004. 21:26 ] @
e care! hvala :) !
[ wex-alpha @ 22.03.2004. 15:31 ] @
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;
}