You are on page 1of 6

PROGRAMIRANJE 4.AUDITORNE VJEŽBE 31.10.

2012 1

4. Auditorne vježbe
Svaki dolje navedeni zadatak riješiti na 3 načina – while petljom, for petljom i do-while
petljom.

Prosjek

Jimmy ima velikih problema u školi, i traži vas, kao velikog brata koji zna programirati, da
mu pomognete tako da mu napišete program koji će mu olakšati njegove probleme. Njega ne
muče loše ocjene, već to što kad mu se roditelji vrate sa informacija s prijepisom ocjena, on
ne zna što očekivati – ne zna koji prosjek ima.

Pomognite mu tako da on unosi ocjene, i vaš program mu na kraju izračuna prosjek unešenih
ocjena. Unos se prekida kad se unese nula.

Primjer ulaza: 1 2 3 4 0
Primjer izlaza: 2.50 (dobar,3) while(1)
{
scanf("%d", &ocj);
#include <stdio.h>
if(!ocj)
int main() break;
{
int ocj = -99, sum = 0, cnt = 0; sum += ocj;
double avg; cnt++;
}
do
{
scanf("%d", &ocj);
for(cnt = -1; ocj != 0; cnt++, sum += ocj)
{
if(ocj)
scanf("%d", &ocj);
{
//sum += ocj;
sum += ocj;
}
cnt++;
}

}while(ocj); cnt = -1;


for(;;)
avg = (double)sum/cnt; {
printf("%.2lf\n", avg); if(ocj == 0)
break;
return 0;
} scanf("%d", &ocj);

cnt++;
sum += ocj;
}
PROGRAMIRANJE 4.AUDITORNE VJEŽBE 31.10.2012 2

Prostak
Danijel je jedan obični prostak – voli zvoniti susjedima na portafon i onda bježi. On izabere
neku ulicu, i onda taj dan zvoni na portafone u toj ulici, i to samo u ulazima čiji broj je prost
broj.

Pošto Danijel baš nije vrsni matematičar, pomozite mu na način da ispišete na koje ulaze da
zvoni. On će u vaš program upisati najveći broj u željenoj ulici, a vaš zadatak je da ispišete
na koje ulaze smije zvoniti.

Primjer ulaza: 10
Primjer izlaza: 1 2 3 5 7

#include <stdio.h>

int main()
{
int max; for(i = 1; i <= max; i++)
int i,j, isProst; {
isProst = 1;
scanf("%d", &max); for(j = 2; j < i; j++)
{
i = 1; if(i % j == 0)
while(i <= max) isProst = 0;
{ }
isProst = 1;
j = 2; if(isProst)
while(j <= i/2 && isProst) printf("%d ", i);
{ }
isProst = i % j++;
}

if(isProst)
printf("%d ", i);
i++;
}

return 0; for(i = 1, isProst = 1; i <= max; i++, isProst = 1)


} {
for(j = 2; j <= i/2 && isProst; j++)
{
isProst = i % j;
}

if(isProst)
printf("%d ", i);
}
PROGRAMIRANJE 4.AUDITORNE VJEŽBE 31.10.2012 3

Prostak 2
Danijel je jedan obični prostak – voli zvoniti susjedima na portafon i onda bježi. On izabere
neku ulicu, i onda taj dan zvoni na portafone u toj ulici, i to samo u ulazima čiji broj se može
dobiti kao kvadrat nekog broja.

Pošto Danijel baš nije vrsni matematičar, pomozite mu na način da ispišete na koje ulaze da
zvoni. On će u vaš program upisati najveći broj u željenoj ulici, a vaš zadatak je da ispišete
na koje ulaze smije zvoniti.

Primjer ulaza: 10
Primjer izlaza: 1 4 9
for(i = 1; i <= max; i++)
{
for(j = 1; j * j <= i; j++)
#include <stdio.h> {
if(i == j * j)
int main() printf("%d ", i);
{ }
}
int max;
int i,j;

scanf("%d", &max);

for(i = 1; i * i <= max; i++)


printf("%d ", i * i);

return 0;
}
PROGRAMIRANJE 4.AUDITORNE VJEŽBE 31.10.2012 4

Savršeni prostak
Danijel je jedan obični prostak – voli zvoniti susjedima na portafon i onda bježi. On izabere
neku ulicu, i onda taj dan zvoni na portafone u toj ulici, i to samo u ulazima čiji broj je
savršen broj. Savršen broj je onaj broj koji je jednak sumi svojih dijelitelja.

Pošto Danijel baš nije vrsni matematičar, pomozite mu na način da ispišete na koje ulaze da
zvoni. On će u vaš program upisati najveći broj u željenoj ulici, a vaš zadatak je da ispišete
na koje ulaze smije zvoniti.

Primjer ulaza: 10
Primjer izlaza: 6
Objašnjenje: 6 je savršen broj, jer je 6 = 1 + 2 + 3

#include <stdio.h>

int main()
{
int max;
int i,j,sum;

scanf("%d", &max);

for(i = 1; i <= max; i++)


{
sum = 0;
for(j = 1; j < i; j++)
{
if(i % j == 0)
sum += j;
}
if(sum == i)
printf("%d ", i);
}

return 0;
}
PROGRAMIRANJE 4.AUDITORNE VJEŽBE 31.10.2012 5

Klada 2
Zvonimir voli svakih 2-3 tjedna uplatiti koji listić u kladionici. On to radi na nacin da izabere
niz parova, te uzme najvjerojatniji ishod svakog para, i uplati jedan listić s tim
koeficijentima, te uzme najnevjerojatniji ishod svakog para i uplati jedan listić s tim
koeficijentima – ukupno 2 listića. Pomozite Zvonimiru tako da mu izračunate, na temelju
odabranih koeficijenata, koliki bi bio dobitak ako se ostvari neka od te dvije mogućnosti.

Primjer ulaza:
6 20
Unesite 1. par:
1.5 2.2 3.0
Unesite 2. par:
1.1 5.6 11.9
...
...
Unesite 6. par:
2.0 5.6 8.0

Primjer izlaza: Moguća salda: -20.00 25.00 113.00

#include <stdio.h>

int main()
{
int brParova,i;
double maxKoef = 1.0, minKoef = 1.0, ulog;
double p1,px,p2, tmpMax, tmpMin;

scanf("%d %lf",&brParova,&ulog);

for(i = 1; i <= brParova; i++)


{
printf("Unesite %d. par:\n", i);
scanf("%lf %lf %lf", &p1, &px, &p2);

tmpMax = p1;
tmpMin = p1;

if(px > tmpMax) tmpMax = px;


if(px < tmpMin) tmpMin = px;

if(p2 > tmpMax) tmpMax = p2;


if(p2 < tmpMin) tmpMin = p2;

maxKoef *= tmpMax;
minKoef *= tmpMin;
}
printf("Salda: %.2f %.2f %.2f", -2*ulog, -2*ulog + ulog*maxKoef, -2*ulog +
ulog*minKoef );
return 0;
}
PROGRAMIRANJE 4.AUDITORNE VJEŽBE 31.10.2012 6

Klada 2b
Zvonimir voli svakih 2-3 tjedna uplatiti koji listić u kladionici. On to radi na nacin da izabere
niz parova, te uzme najvjerojatniji i najnevjerojatniji moguci ishod od svih ponuđenih parova
(najveći koeficijent i najmanji koeficijent), te uplati određeni iznos na ta 2 para (ukupno 1
listić). Pomozite Zvonimiru tako da mu izračunate, na temelju odabranih koeficijenata, koliki
bi bio dobitak ako se ostvari neka od te dvije mogućnosti.

Primjer ulaza:
6 20
Unesite 1. par:
1.5 2.2 3.0
Unesite 2. par:
1.1 5.6 11.9
...
...
Unesite 6. par:
2.0 5.6 8.0

Primjer izlaza: Moguća salda: -20.00 25.00 113.00

#include <stdio.h>

int main()
{
int brParova,i;
double maxKoef = 1.0, minKoef = 99999.0, ulog;
double p1,px,p2;

scanf("%d %lf",&brParova,&ulog);

for(i = 1; i <= brParova; i++)


{
printf("Unesite %d. par:\n", i);
scanf("%lf %lf %lf", &p1, &px, &p2);

if(p1 > maxKoef) maxKoef = p1;


if(p1 < minKoef) minKoef = p1;

if(px > maxKoef) maxKoef = px;


if(px < minKoef) minKoef = px;

if(p2 > maxKoef) maxKoef = p2;


if(p2 < minKoef) minKoef = p2;

printf("Moguca salda: %.2f %.2f", -ulog, -ulog + ulog*maxKoef*minKoef );


return 0;
}

You might also like