Zad. Napišite program koji učitava 9 realnih brojeva, te ispisuje umnožak broja koji ima najveću apsolutnu vrijednost s brojem koji ima najmanju apsolutnu vrijednost. Ako dva broja imaju jednaku apsolutnu vrijednost, za većeg/manjeg uzimate onog koji je prije učitan.
Mislim da mi je kod tocan..
Kako se ovaj kod može skratiti? Znam samo osnovnu if else i for petlju, jer nikad prije nisam ucio prog. I oce li ovo proc na kolokviju. Ili rjesenje mora biti elegancija i savrsenstvo?
[code:1]#include <stdio.h>
int main ()
{
double a,b,c,d,e,f,g,h,i,m,n;
scanf ("%lf %lf %lf %lf %lf %lf %lf %lf %lf", &a,&b,&c,&d,&e,&f,&g,&h,&i);
if (a<0)
a=-a;
if (b<0)
b=-b;
if (c<0)
c=-c;
if (d<0)
d=-d;
if (e<0)
e=-e;
if (f<0)
f=-f;
if (g<0)
g=-g;
if (h<0)
h=-h;
if (i<0)
i=-i;
if (a>=b && a>=c && a>=d && a>=e && a>=f && a>=g && a>=h && a>=i)
m=a;
else if (b>=c && b>=d && b>=e && b>=f && b>=g && b>=h && b>=i)
m=b;
else if (c>=d && c>=e && c>=f && c>=g && c>=h && c>=i)
m=c;
else if (d>=e && d>=f && d>=g && d>=h && d>=i)
m=d;
else if (e>=f && e>=g && e>=h && e>=i)
m=e;
else if (f>=g && f>=h && f>=i)
m=f;
else if (g>=h && g>=i)
m=g;
else if (h>=i)
m=h;
else
m=i;
if (a<=b && a<=c && a<=d && a<=e && a<=f && a<=g && a<=h && a<=i)
n=a;
else if (b<=c && b<=d && b<=e && b<=f && b<=g && b<=h && b<=i)
n=b;
else if (c<=d && c<=e && c<=f && c<=g && c<=h && c<=i)
n=c;
else if (d<=e && d<=f && d<=g && d<=h && d<=i)
n=d;
else if (e<=f && e<=g && e<=h && e<=i)
n=e;
else if (f<=g && f<=h && f<=i)
n=f;
else if (g<=h && g<=i)
n=g;
else if (h<=i)
n=h;
else
n=i;
printf ("%f", m*n);
return 0;
}
[/code:1]
Zad. Napišite program koji učitava 9 realnih brojeva, te ispisuje umnožak broja koji ima najveću apsolutnu vrijednost s brojem koji ima najmanju apsolutnu vrijednost. Ako dva broja imaju jednaku apsolutnu vrijednost, za većeg/manjeg uzimate onog koji je prije učitan.
Mislim da mi je kod tocan..
Kako se ovaj kod može skratiti? Znam samo osnovnu if else i for petlju, jer nikad prije nisam ucio prog. I oce li ovo proc na kolokviju. Ili rjesenje mora biti elegancija i savrsenstvo?
Kod: | #include <stdio.h>
int main ()
{
double a,b,c,d,e,f,g,h,i,m,n;
scanf ("%lf %lf %lf %lf %lf %lf %lf %lf %lf", &a,&b,&c,&d,&e,&f,&g,&h,&i);
if (a<0)
a=-a;
if (b<0)
b=-b;
if (c<0)
c=-c;
if (d<0)
d=-d;
if (e<0)
e=-e;
if (f<0)
f=-f;
if (g<0)
g=-g;
if (h<0)
h=-h;
if (i<0)
i=-i;
if (a>=b && a>=c && a>=d && a>=e && a>=f && a>=g && a>=h && a>=i)
m=a;
else if (b>=c && b>=d && b>=e && b>=f && b>=g && b>=h && b>=i)
m=b;
else if (c>=d && c>=e && c>=f && c>=g && c>=h && c>=i)
m=c;
else if (d>=e && d>=f && d>=g && d>=h && d>=i)
m=d;
else if (e>=f && e>=g && e>=h && e>=i)
m=e;
else if (f>=g && f>=h && f>=i)
m=f;
else if (g>=h && g>=i)
m=g;
else if (h>=i)
m=h;
else
m=i;
if (a<=b && a<=c && a<=d && a<=e && a<=f && a<=g && a<=h && a<=i)
n=a;
else if (b<=c && b<=d && b<=e && b<=f && b<=g && b<=h && b<=i)
n=b;
else if (c<=d && c<=e && c<=f && c<=g && c<=h && c<=i)
n=c;
else if (d<=e && d<=f && d<=g && d<=h && d<=i)
n=d;
else if (e<=f && e<=g && e<=h && e<=i)
n=e;
else if (f<=g && f<=h && f<=i)
n=f;
else if (g<=h && g<=i)
n=g;
else if (h<=i)
n=h;
else
n=i;
printf ("%f", m*n);
return 0;
}
|
|