Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
nicki minaj Forumaš(ica)
Pridružen/a: 15. 01. 2012. (02:34:45) Postovi: (11)16
|
Postano: 17:32 sri, 12. 12. 2012 Naslov: zadace 2012/13 |
|
|
u cetvrtoj zadaci mi je jedan zadatak sljedeci:
"Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (uvažavajući kratnost) svih cijelih brojeva različitih od nule koji se nalaze između n i -2 (uključivo)."
prilicno me zbunjuje zadatak pa nisam sigurna ako sam ga dobro razumijela... shvacam da gledamo brojeve izmedu n i -2, a s obzirom da je n cijeli broj, moramo imati slucajeve kada je n manji, veci ili jednak -2.
no, je li se sumiraju prosti faktori od svih cijelih brojeva u tom intervalu, u jednu sumu, ili se ispisuju sume prostih faktora izracunate za svaki cijeli broj posebno, to jest vise suma? takoder, ako uvazavamo kratnost faktora, znaci dodajemo faktor u sumu onoliko puta kolika mu je kratnost?
mozda mi nije jasno nesto totalno banalno, ali mi treba nekad dulje da dode do :idea: sa nekim zadacima. hvala.
u cetvrtoj zadaci mi je jedan zadatak sljedeci:
"Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (uvažavajući kratnost) svih cijelih brojeva različitih od nule koji se nalaze između n i -2 (uključivo)."
prilicno me zbunjuje zadatak pa nisam sigurna ako sam ga dobro razumijela... shvacam da gledamo brojeve izmedu n i -2, a s obzirom da je n cijeli broj, moramo imati slucajeve kada je n manji, veci ili jednak -2.
no, je li se sumiraju prosti faktori od svih cijelih brojeva u tom intervalu, u jednu sumu, ili se ispisuju sume prostih faktora izracunate za svaki cijeli broj posebno, to jest vise suma? takoder, ako uvazavamo kratnost faktora, znaci dodajemo faktor u sumu onoliko puta kolika mu je kratnost?
mozda mi nije jasno nesto totalno banalno, ali mi treba nekad dulje da dode do sa nekim zadacima. hvala.
|
|
[Vrh] |
|
mdoko Forumaš(ica)
Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol:
Lokacija: Heriot-Watt University, Edinburgh
|
Postano: 17:48 sri, 12. 12. 2012 Naslov: Re: zadace 2012/13 |
|
|
[quote="nicki minaj"]no, je li se sumiraju prosti faktori od svih cijelih brojeva u tom intervalu, u jednu sumu, ili se ispisuju sume prostih faktora izracunate za svaki cijeli broj posebno, to jest vise suma?
[/quote]
Uočite da zadatak kaže da se ispisuje [i]suma[/i], a ne [i]sume[/i].
[quote]takoder, ako uvazavamo kratnost faktora, znaci dodajemo faktor u sumu onoliko puta kolika mu je kratnost?[/quote]
Točno tako.
nicki minaj (napisa): | no, je li se sumiraju prosti faktori od svih cijelih brojeva u tom intervalu, u jednu sumu, ili se ispisuju sume prostih faktora izracunate za svaki cijeli broj posebno, to jest vise suma?
|
Uočite da zadatak kaže da se ispisuje suma, a ne sume.
Citat: | takoder, ako uvazavamo kratnost faktora, znaci dodajemo faktor u sumu onoliko puta kolika mu je kratnost? |
Točno tako.
_________________ Extraordinary claims require extraordinary evidence. – Carl Sagan
|
|
[Vrh] |
|
nicki minaj Forumaš(ica)
Pridružen/a: 15. 01. 2012. (02:34:45) Postovi: (11)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
acuksi Forumaš(ica)
Pridružen/a: 23. 09. 2012. (21:23:13) Postovi: (F)16
|
Postano: 16:54 čet, 13. 12. 2012 Naslov: |
|
|
može pomoć jer oko zadatka iz zadaće jer sam već pokušao sve moguće kombinacije i ne mogu skontat što mi je krivo... hvala =)
Napišite program koji učitava prirodni broj n<131, te niz od n cijelih brojeva. Program treba pronaći najveći element niza djeljiv s 10, te u originalnom poretku ispisati indekse onih elementa niza kojima je prva znamenka jedna od znamenki pronađenog maksimuma.
Ako traženi maksimum ne postoji, program ne smije ništa ispisati. Ispisane brojeve odvojite razmacima.
kod
#include<stdio.h>
int prvaznam(int n)
{
int z=0,m;
m=n;
while(n!=0) {n/=10; z++;}
while(z!=1) {m/=10; z--;}
return m;
}
int main()
{
int n,i,max=0,t,j,c;
scanf("%d",&n);
int a[131];
for(i=0;i<n;i++)
{scanf("%d",&a[i]);
if(a[i]%10==0) max=a[i];}
for(i=0;i<n;i++)
if(a[i]>max && a[i]%10==0) max=a[i];
for(i=0;i<n;i++)
{
j=max;
t=prvaznam(a[i]);
while(j!=0)
{
if(j%10<0 && j%10!=j) c=-j%10; else c=j%10;
if(c==t) {printf("%d ",i); break;}
j/=10;
}
}
return 0;
}
može pomoć jer oko zadatka iz zadaće jer sam već pokušao sve moguće kombinacije i ne mogu skontat što mi je krivo... hvala =)
Napišite program koji učitava prirodni broj n<131, te niz od n cijelih brojeva. Program treba pronaći najveći element niza djeljiv s 10, te u originalnom poretku ispisati indekse onih elementa niza kojima je prva znamenka jedna od znamenki pronađenog maksimuma.
Ako traženi maksimum ne postoji, program ne smije ništa ispisati. Ispisane brojeve odvojite razmacima.
kod:
#include<stdio.h>
int prvaznam(int n)
{
int z=0,m;
m=n;
while(n!=0) {n/=10; z++;}
while(z!=1) {m/=10; z--;}
return m;
}
int main()
{
int n,i,max=0,t,j,c;
scanf("%d",&n);
int a[131];
for(i=0;i<n;i++)
{scanf("%d",&a[i]);
if(a[i]%10==0) max=a[i];}
for(i=0;i<n;i++)
if(a[i]>max && a[i]%10==0) max=a[i];
for(i=0;i<n;i++)
{
j=max;
t=prvaznam(a[i]);
while(j!=0)
{
if(j%10<0 && j%10!=j) c=-j%10; else c=j%10;
if(c==t) {printf("%d ",i); break;}
j/=10;
}
}
return 0;
}
|
|
[Vrh] |
|
Phoenix Forumaš(ica)
Pridružen/a: 15. 05. 2010. (18:46:07) Postovi: (164)16
Sarma: -
|
Postano: 17:37 čet, 13. 12. 2012 Naslov: |
|
|
Ako se ne varam, kod ti ne radi za negativne brojeve, a za ostale radi, zar ne?
Greška je u funkciji [tt]prvaznam[/tt]. U slučaju negativnog broja, prva znamenka će zapravo biti prva znamenka s minus predznakom, dakle negativan broj, što nije dobro.
(Vidim da si u kodu negdje već pazio na takvo nešto, no u funkciji isto to treba.)
Ako se ne varam, kod ti ne radi za negativne brojeve, a za ostale radi, zar ne?
Greška je u funkciji prvaznam. U slučaju negativnog broja, prva znamenka će zapravo biti prva znamenka s minus predznakom, dakle negativan broj, što nije dobro.
(Vidim da si u kodu negdje već pazio na takvo nešto, no u funkciji isto to treba.)
|
|
[Vrh] |
|
acuksi Forumaš(ica)
Pridružen/a: 23. 09. 2012. (21:23:13) Postovi: (F)16
|
Postano: 18:25 čet, 13. 12. 2012 Naslov: |
|
|
nop...opet javlja da nije dobro. Ja sam stvarno sve te kombinacije s pozitivnim i negativnim prošao, al mi je sve javilo za krivo. -.-"
#include<stdio.h>
int prvaznam(int n)
{
int z=0,m;
m=n;
while(n!=0) {n/=10; z++;}
while(z!=1) {m/=10; z--;}
if (m>0) return m; else return -m;
}
int main()
{
int n,i,max=0,t,j,c;
scanf("%d",&n);
int a[131];
for(i=0;i<n;i++)
{scanf("%d",&a[i]);
if(a[i]%10==0) max=a[i];}
for(i=0;i<n;i++)
if(a[i]>max && a[i]%10==0) max=a[i];
for(i=0;i<n;i++)
{
j=max;
t=prvaznam(a[i]);
while(j!=0)
{
if(j%10<0) c=-j%10; else c=j%10;
if(c==t) {printf("%d ",i); break;}
j/=10;
}
}
return 0;
}
nop...opet javlja da nije dobro. Ja sam stvarno sve te kombinacije s pozitivnim i negativnim prošao, al mi je sve javilo za krivo. -.-"
#include<stdio.h>
int prvaznam(int n)
{
int z=0,m;
m=n;
while(n!=0) {n/=10; z++;}
while(z!=1) {m/=10; z--;}
if (m>0) return m; else return -m;
}
int main()
{
int n,i,max=0,t,j,c;
scanf("%d",&n);
int a[131];
for(i=0;i<n;i++)
{scanf("%d",&a[i]);
if(a[i]%10==0) max=a[i];}
for(i=0;i<n;i++)
if(a[i]>max && a[i]%10==0) max=a[i];
for(i=0;i<n;i++)
{
j=max;
t=prvaznam(a[i]);
while(j!=0)
{
if(j%10<0) c=-j%10; else c=j%10;
if(c==t) {printf("%d ",i); break;}
j/=10;
}
}
return 0;
}
|
|
[Vrh] |
|
Phoenix Forumaš(ica)
Pridružen/a: 15. 05. 2010. (18:46:07) Postovi: (164)16
Sarma: -
|
Postano: 18:56 čet, 13. 12. 2012 Naslov: |
|
|
Još ti je preostalo popraviti kod za one primjere kada je jedan od brojeva u nizu jednak nuli - tada zapneš u beskonačnu petlju i program se ne izvrši do kraja.
Ako se radi o zadatku iz web zadaće, bilo bi dobro da proučiš primjer na kojem ti je pao program (a onda ga i napisati ovdje ako se još uvijek ne snalaziš).
Inače, kod mi ne izgleda pogrešan, ali je malo kompliciraniji nego što bi trebao biti i meni osobno na dijelove nejasan. Ne krivim te, ionako ćeš to kroz vježbu i kroz iduće gradivo na faksu izvježbati i naučiti. :) Ali ovo navodim jer će se možda tu potkrasti još koja greška, a ja je na prvo oko ne vidim upravo zbog toga. :P
Pogledat ću još jednom tijekom večeri ako ti ne uspije kod. Ti svakako napiši test primjer na kojem kod ne prolazi ako već sam ne popraviš kod. :)
I sretno s kodom! ;)
Još ti je preostalo popraviti kod za one primjere kada je jedan od brojeva u nizu jednak nuli - tada zapneš u beskonačnu petlju i program se ne izvrši do kraja.
Ako se radi o zadatku iz web zadaće, bilo bi dobro da proučiš primjer na kojem ti je pao program (a onda ga i napisati ovdje ako se još uvijek ne snalaziš).
Inače, kod mi ne izgleda pogrešan, ali je malo kompliciraniji nego što bi trebao biti i meni osobno na dijelove nejasan. Ne krivim te, ionako ćeš to kroz vježbu i kroz iduće gradivo na faksu izvježbati i naučiti. Ali ovo navodim jer će se možda tu potkrasti još koja greška, a ja je na prvo oko ne vidim upravo zbog toga.
Pogledat ću još jednom tijekom večeri ako ti ne uspije kod. Ti svakako napiši test primjer na kojem kod ne prolazi ako već sam ne popraviš kod.
I sretno s kodom!
|
|
[Vrh] |
|
acuksi Forumaš(ica)
Pridružen/a: 23. 09. 2012. (21:23:13) Postovi: (F)16
|
|
[Vrh] |
|
gianluigiana Forumaš(ica)
Pridružen/a: 01. 10. 2012. (20:11:49) Postovi: (D)16
|
Postano: 20:34 sub, 22. 12. 2012 Naslov: |
|
|
ja imam problem sa zadatkom iz zadaće koji glasi ovako:
Napišite program koji učitava tri realna broja x, y i z, te ispisuje vrijednost izraza
f=m^4+M^2,
pri čemu je
m=min{x,y,z} i M=max{x,y,z}.
Rezultat obavezno ispišite koristeći format %g!
moj kod:
#include<stdio.h>
int main () {
float x,y,z,m,M,f;
scanf("%f",&x);
scanf("%f",&y);
scanf("%f",&z);
m=x;
M=x;
if(y<m) m=y;
if(z<m) m=z;
if(y>M) M=y;
if(z>M) M=z;
f=(m*m*m*m)+(M*M);
printf("%g",f);
return 0;
}
dobro mi ispisuje za neke manje brojeve, ali mi je u mailu da je netočno za input: 4433.7529, 5862.9902, 7118.6813...ja sam probala sve, probala sam i s double i sve. točno mi ispiše minimum i maksimum, ali rezultat nikako. utipkala sam na kalkulator i ispadne mi sličan rezultat kao u porgramu pa sam mislila da su možda preveliki brojevi...pa eto, ako bi mi netko mogao malo pomoć ili ispravit :)
ja imam problem sa zadatkom iz zadaće koji glasi ovako:
Napišite program koji učitava tri realna broja x, y i z, te ispisuje vrijednost izraza
f=m^4+M^2,
pri čemu je
m=min{x,y,z} i M=max{x,y,z}.
Rezultat obavezno ispišite koristeći format %g!
moj kod:
#include<stdio.h>
int main () {
float x,y,z,m,M,f;
scanf("%f",&x);
scanf("%f",&y);
scanf("%f",&z);
m=x;
M=x;
if(y<m) m=y;
if(z<m) m=z;
if(y>M) M=y;
if(z>M) M=z;
f=(m*m*m*m)+(M*M);
printf("%g",f);
return 0;
}
dobro mi ispisuje za neke manje brojeve, ali mi je u mailu da je netočno za input: 4433.7529, 5862.9902, 7118.6813...ja sam probala sve, probala sam i s double i sve. točno mi ispiše minimum i maksimum, ali rezultat nikako. utipkala sam na kalkulator i ispadne mi sličan rezultat kao u porgramu pa sam mislila da su možda preveliki brojevi...pa eto, ako bi mi netko mogao malo pomoć ili ispravit
|
|
[Vrh] |
|
tiborr Forumaš(ica)
Pridružen/a: 23. 12. 2012. (18:54:28) Postovi: (E)16
|
Postano: 23:28 ned, 23. 12. 2012 Naslov: |
|
|
zašto mi ovo radi uredno za max a za min vraća zadnji član?
[code:1]#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
int i;
double a[7],max,min;
for(i=0;i<8;i++){
scanf("%lg",&a[i]);
if (i==0) {max=a[0]; min=a[0];}
if (fabs(a[i])>fabs(max)) max=fabs(a[i]);
if (fabs(a[i])<fabs(min)) min=fabs(a[i]);
}
printf("%g %g",max,min);
return 0;
}[/code:1]
zašto mi ovo radi uredno za max a za min vraća zadnji član?
Kod: | #include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
int i;
double a[7],max,min;
for(i=0;i<8;i++){
scanf("%lg",&a[i]);
if (i==0) {max=a[0]; min=a[0];}
if (fabs(a[i])>fabs(max)) max=fabs(a[i]);
if (fabs(a[i])<fabs(min)) min=fabs(a[i]);
}
printf("%g %g",max,min);
return 0;
} |
|
|
[Vrh] |
|
Atomised Forumaš(ica)
Pridružen/a: 04. 09. 2007. (15:33:59) Postovi: (399)16
Lokacija: Exotica
|
|
[Vrh] |
|
tiborr Forumaš(ica)
Pridružen/a: 23. 12. 2012. (18:54:28) Postovi: (E)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 12:44 pon, 24. 12. 2012 Naslov: |
|
|
Atomised ti je dobro odgovorio. Zasto [tt]min[/tt], a ne -- ocekivano -- [tt]max[/tt], ovisi i o tome kako compiler, OS i tko zna tko jos rasporede varijable u memoriji. Poanta: indexu 7 ([tt]i < 8[/tt]) ne smijes pristupati ako taj niz ima duljinu 7 ([tt]a[7][/tt]) jer mu legalni indeksi idu od 0 do 6.
Atomised ti je dobro odgovorio. Zasto min, a ne – ocekivano – max, ovisi i o tome kako compiler, OS i tko zna tko jos rasporede varijable u memoriji. Poanta: indexu 7 (i < 8) ne smijes pristupati ako taj niz ima duljinu 7 (a[7]) jer mu legalni indeksi idu od 0 do 6.
_________________ 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.
|
|
[Vrh] |
|
celeste Forumaš(ica)
Pridružen/a: 31. 10. 2009. (11:56:09) Postovi: (23)16
|
Postano: 10:55 uto, 8. 1. 2013 Naslov: |
|
|
Oke, mozhe pomoch oko ovog zadatka:
Napišite program koji učitava 6 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.
Rezultat obavezno ispišite koristeći format %g!
Kod mi radi ali kazhe provjera zadacha da nije dobro.
#include <stdio.h>
#include <stdlib.h>
int main(){
double a,b,max,min;
int n=6;
scanf("%lg",&a);
if(a<0) a=a*(-1);
min=max=a;
while(n>0){
scanf("%lg", &b);
if(b<0) b=b*(-1);
if(b>max) max=b;
if(b<min) min=b;
b=a;
n=n-1;}
printf ("%g",min*max);
return 0;
}
Oke, mozhe pomoch oko ovog zadatka:
Napišite program koji učitava 6 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.
Rezultat obavezno ispišite koristeći format %g!
Kod mi radi ali kazhe provjera zadacha da nije dobro.
#include <stdio.h>
#include <stdlib.h>
int main(){
double a,b,max,min;
int n=6;
scanf("%lg",&a);
if(a<0) a=a*(-1);
min=max=a;
while(n>0){
scanf("%lg", &b);
if(b<0) b=b*(-1);
if(b>max) max=b;
if(b<min) min=b;
b=a;
n=n-1;}
printf ("%g",min*max);
return 0;
}
|
|
[Vrh] |
|
beuler Forumaš(ica)
Pridružen/a: 02. 11. 2012. (14:08:41) Postovi: (16)16
|
Postano: 11:04 uto, 8. 1. 2013 Naslov: |
|
|
[quote="celeste"]Oke, mozhe pomoch oko ovog zadatka:
Napišite program koji učitava 6 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.
Rezultat obavezno ispišite koristeći format %g!
Kod mi radi ali kazhe provjera zadacha da nije dobro.
}[/quote]
Cini mi se da moras na kraju pomnozit sa prvobitnom formom broja, npr. ako ukucas negativan broj i njegova apsolutna vrijednost je najveca, kad se na kraju mnozi (max*min) on mora biti negativan.
celeste (napisa): | Oke, mozhe pomoch oko ovog zadatka:
Napišite program koji učitava 6 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.
Rezultat obavezno ispišite koristeći format %g!
Kod mi radi ali kazhe provjera zadacha da nije dobro.
} |
Cini mi se da moras na kraju pomnozit sa prvobitnom formom broja, npr. ako ukucas negativan broj i njegova apsolutna vrijednost je najveca, kad se na kraju mnozi (max*min) on mora biti negativan.
_________________ Sumnjam, dakle možda jesam.
|
|
[Vrh] |
|
celeste Forumaš(ica)
Pridružen/a: 31. 10. 2009. (11:56:09) Postovi: (23)16
|
Postano: 11:38 uto, 8. 1. 2013 Naslov: |
|
|
Skuzhila sam da mi je n=6 krivo i stavila sam n=5, ali mi je doshlo na mail da kod ne radi za inuput za koji radi, tak da nisam sigurna shto se dogodilo.
Za input 63.129 14.2235 -49.6929 -27.0612 -23.3582 -74.0464 najmanju apsolutnu vrijednost ima 14.2235, najvechu ima -74.0464, a umnozhak im je 1053.2. I to je tochno, tako da ne znam stvarno u chemu je stvar.
Skuzhila sam da mi je n=6 krivo i stavila sam n=5, ali mi je doshlo na mail da kod ne radi za inuput za koji radi, tak da nisam sigurna shto se dogodilo.
Za input 63.129 14.2235 -49.6929 -27.0612 -23.3582 -74.0464 najmanju apsolutnu vrijednost ima 14.2235, najvechu ima -74.0464, a umnozhak im je 1053.2. I to je tochno, tako da ne znam stvarno u chemu je stvar.
|
|
[Vrh] |
|
filipi Forumaš(ica)
Pridružen/a: 15. 10. 2012. (11:49:57) Postovi: (16)16
|
|
[Vrh] |
|
celeste Forumaš(ica)
Pridružen/a: 31. 10. 2009. (11:56:09) Postovi: (23)16
|
|
[Vrh] |
|
Leolinus Forumaš(ica)
Pridružen/a: 30. 11. 2012. (16:36:41) Postovi: (10)16
|
Postano: 3:07 čet, 10. 1. 2013 Naslov: |
|
|
Može li netko objasniti što je tu krivo?
Za 5 1782 611 3347 732 2750 <-- na ovom javlja grešku.
Izbacuje 7.
Probalo se i s indeksom od 1 do n i s indeksima od 0 do n - 1.
Zadatak je toliko jednostavan, nemam pojma zašto neće uhvatiti rješenje.
EDIT: Ma, zadatak sigurno radi, evaluator je glup ili zadatak nije dobro formuliran.
[code:1]/* 2. zadatak */
/* Napisite program koji ucitava prirodni broj n < 39 te niz od 'n' cijelih brojeva.
* Program treba ispisati sumu indeksa prvih 8 parnih elemenata niza.
* Ako parnih brojeva ima manje od 8, ispisite sumu indeksa svih parnih brojeva.
* Ako parnih brojeva uopce nema u nizu, ispisite nulu.
*/
/* Rjesenje:
* Treba biljeziti koliko je parnih brojeva ucitano i naravno cuvati sumu indeksa.
* I ovisno o uvjetima u zadatku provjeravati sto vrijedi, a sto ne.
*/
#include <stdio.h>
int main()
{
int n;
int brojParnih = 0;
int sumaParnih = 0;
int i;
int broj; // ovdje ce se ucitavati varijabla
// printf("Ucitaj prirodni broj n: ");
// komentar stavljen jer nesto pise u vezi ukrasa
scanf("%d", &n);
if (n >= 39) { printf("Upisan krivi n!\n"); exit(1); } // greska
// stavljen indeks na nulu(prvi element)
for(i = 0; i < n; i++)
{
scanf("%d", &broj);
if (broj % 2 == 0) { brojParnih++; sumaParnih += i; }
if (brojParnih == 8) break;
}
if (brojParnih == 0) printf("0"); // nema parnih brojeva u nizu
else printf("%d", sumaParnih);
// ako je brojParnih < 8 onda ce se petlja odvrtiti i sumirati sve
// indekse, ako je brojParnih == 8, izlazi van iz petlje da ne zbraja
// dalje i ispisuje sumu parnih
return 0;
}[/code:1]
Može li netko objasniti što je tu krivo?
Za 5 1782 611 3347 732 2750 ← na ovom javlja grešku.
Izbacuje 7.
Probalo se i s indeksom od 1 do n i s indeksima od 0 do n - 1.
Zadatak je toliko jednostavan, nemam pojma zašto neće uhvatiti rješenje.
EDIT: Ma, zadatak sigurno radi, evaluator je glup ili zadatak nije dobro formuliran.
Kod: | /* 2. zadatak */
/* Napisite program koji ucitava prirodni broj n < 39 te niz od 'n' cijelih brojeva.
* Program treba ispisati sumu indeksa prvih 8 parnih elemenata niza.
* Ako parnih brojeva ima manje od 8, ispisite sumu indeksa svih parnih brojeva.
* Ako parnih brojeva uopce nema u nizu, ispisite nulu.
*/
/* Rjesenje:
* Treba biljeziti koliko je parnih brojeva ucitano i naravno cuvati sumu indeksa.
* I ovisno o uvjetima u zadatku provjeravati sto vrijedi, a sto ne.
*/
#include <stdio.h>
int main()
{
int n;
int brojParnih = 0;
int sumaParnih = 0;
int i;
int broj; // ovdje ce se ucitavati varijabla
// printf("Ucitaj prirodni broj n: ");
// komentar stavljen jer nesto pise u vezi ukrasa
scanf("%d", &n);
if (n >= 39) { printf("Upisan krivi n!\n"); exit(1); } // greska
// stavljen indeks na nulu(prvi element)
for(i = 0; i < n; i++)
{
scanf("%d", &broj);
if (broj % 2 == 0) { brojParnih++; sumaParnih += i; }
if (brojParnih == 8) break;
}
if (brojParnih == 0) printf("0"); // nema parnih brojeva u nizu
else printf("%d", sumaParnih);
// ako je brojParnih < 8 onda ce se petlja odvrtiti i sumirati sve
// indekse, ako je brojParnih == 8, izlazi van iz petlje da ne zbraja
// dalje i ispisuje sumu parnih
return 0;
} |
|
|
[Vrh] |
|
|