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

Skracivanje koda iz DZ (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
markann
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 10. 2013. (01:37:06)
Postovi: (1F)16
Sarma = la pohva - posuda
= 3 - 2

PostPostano: 0:04 pet, 18. 10. 2013    Naslov: Skracivanje koda iz DZ Citirajte i odgovorite

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;
}


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


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

PostPostano: 0:35 pet, 18. 10. 2013    Naslov: Citirajte i odgovorite

Ako znas [tt]for[/tt]-petlju, onda znas i protrcati kroz nju 9 puta, ucitati broj, izracunati njegovu apsolutnu vrijednost i usporediti s trazenim minimumom i maximumom. Nema potrebe da prvo ucitas 9 brojeva, pa tek onda radis sto vec radis.

Prodji malo kroz skriptu s vjezbi, npr. zadatake 8.4.2. i 8.4.3. Ista ideja, malo drugaciji uvjet.

P.S. I pazljivije procitaj text zadatka. Rezultat moze biti i negativan broj, sto kod tebe nije moguce.
Ako znas for-petlju, onda znas i protrcati kroz nju 9 puta, ucitati broj, izracunati njegovu apsolutnu vrijednost i usporediti s trazenim minimumom i maximumom. Nema potrebe da prvo ucitas 9 brojeva, pa tek onda radis sto vec radis.

Prodji malo kroz skriptu s vjezbi, npr. zadatake 8.4.2. i 8.4.3. Ista ideja, malo drugaciji uvjet.

P.S. I pazljivije procitaj text zadatka. Rezultat moze biti i negativan broj, sto kod tebe nije moguce.



_________________
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
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