Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
celeste Forumaš(ica)
Pridružen/a: 31. 10. 2009. (11:56:09) Postovi: (23)16
|
|
[Vrh] |
|
celeste Forumaš(ica)
Pridružen/a: 31. 10. 2009. (11:56:09) Postovi: (23)16
|
Postano: 14:13 sri, 16. 1. 2013 Naslov: |
|
|
Opet ne radi. Ne rachuna mi ni tochan maximum.
[code:1]#include <stdio.h>
#include <stdlib.h>
void prva_zn(int x[],int n){
int i;
for(i=0;i<n;i++){
if(x[i]<0) x[i]=-x[i];}
for(i=0;i<n;i++){
while(x[i]>=10){
x[i]=x[i]/10;}}
}
int main(){
int n,x[131],i,m=1,t,k;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&x[i]);
if(x[i]%11==0 &&(m==1 || x[i]>m)) m=x[i];}
printf("%d\n",m);
prva_zn(x,n);
if(m!=1){
k=abs(m);
printf("%d\n",k);
for(i=0;i<n;i++){
while(k>10){
printf("%d\n",x[i]);
if(x[i]==k%10) {printf("%d\n",i);break;}
k=k/10;}}}
return 0;
}[/code:1]
Opet ne radi. Ne rachuna mi ni tochan maximum.
Kod: | #include <stdio.h>
#include <stdlib.h>
void prva_zn(int x[],int n){
int i;
for(i=0;i<n;i++){
if(x[i]<0) x[i]=-x[i];}
for(i=0;i<n;i++){
while(x[i]>=10){
x[i]=x[i]/10;}}
}
int main(){
int n,x[131],i,m=1,t,k;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&x[i]);
if(x[i]%11==0 &&(m==1 || x[i]>m)) m=x[i];}
printf("%d\n",m);
prva_zn(x,n);
if(m!=1){
k=abs(m);
printf("%d\n",k);
for(i=0;i<n;i++){
while(k>10){
printf("%d\n",x[i]);
if(x[i]==k%10) {printf("%d\n",i);break;}
k=k/10;}}}
return 0;
} |
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 14:54 sri, 16. 1. 2013 Naslov: |
|
|
Mozes napisati za koje brojeve vraca krivi maksimum?
Inace, u petlji izgubis maksimum kad [tt]k[/tt] dijelis s 10. Ono [tt]k=abs(m);[/tt] bi trebalo ici na pocetak tijela zadnje [tt]for[/tt]-petlje.
Takodjer, uvjet zadnje [tt]while[/tt]-petlje... zasto je to [tt]k>10[/tt]?
Usput, zasto inzistiras na promjeni clanova niza? (just curious)
Mozes napisati za koje brojeve vraca krivi maksimum?
Inace, u petlji izgubis maksimum kad k dijelis s 10. Ono k=abs(m); bi trebalo ici na pocetak tijela zadnje for-petlje.
Takodjer, uvjet zadnje while-petlje... zasto je to k>10?
Usput, zasto inzistiras na promjeni clanova niza? (just curious)
_________________ 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: 15:28 sri, 16. 1. 2013 Naslov: |
|
|
Isprichavam se, valjda mi se uchinilo da ne rachuna dobar maximum. Rachuna maximum i abs(m) ali od indexa nishta. Ne znam, jel mi do funkcije mozhda?
[code:1]void prva_zn(int x[],int n){
int i;
for(i=0;i<n;i++){
while(x[i]>=10){
x[i]=x[i]/10;}}
}
int main(){
int n,x[131],i,m=1,t,k;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&x[i]);
if(x[i]%11==0 &&(m==1 || x[i]>m)) m=x[i];}
printf("%d\n",m);
prva_zn(x,n);
if(m!=1){
for(i=0;i<n;i++){
k=abs(m);
printf("%d\n",k);
while(k>0){
if(x[i]==k%10) {printf("%d\n",i);break;}
k=k/10;}}}
return 0;
}
[/code:1]
[size=9][color=#999999]Added after 12 minutes:[/color][/size]
O bozhe dragi, kazhe aplikacija za zadache da mi je tochna maloprije pokrpana prva verzija ali mislim da sad i ovo odlichno radi.
[code:1]#include <stdio.h>
#include <stdlib.h>
void prva_zn(int x[],int n){
int i;
for(i=0;i<n;i++){
if(x[i]<0) x[i]=-x[i];}
for(i=0;i<n;i++){
while(x[i]>=10){
x[i]=x[i]/10;}}
}
int main(){
int n,x[131],i,m=1,t,k;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&x[i]);
if(x[i]%11==0 &&(m==1 || x[i]>m)) m=x[i];}
prva_zn(x,n);
if(m!=1){
for(i=0;i<n;i++){
k=abs(m);
t=k;
while(t>0){
if(x[i]==t%10) {printf("%d\n",i);break;}
t=t/10;}}}
return 0;
}
[/code:1]
Hvala puno na svom ovom objashnjavanju.
Isprichavam se, valjda mi se uchinilo da ne rachuna dobar maximum. Rachuna maximum i abs(m) ali od indexa nishta. Ne znam, jel mi do funkcije mozhda?
Kod: | void prva_zn(int x[],int n){
int i;
for(i=0;i<n;i++){
while(x[i]>=10){
x[i]=x[i]/10;}}
}
int main(){
int n,x[131],i,m=1,t,k;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&x[i]);
if(x[i]%11==0 &&(m==1 || x[i]>m)) m=x[i];}
printf("%d\n",m);
prva_zn(x,n);
if(m!=1){
for(i=0;i<n;i++){
k=abs(m);
printf("%d\n",k);
while(k>0){
if(x[i]==k%10) {printf("%d\n",i);break;}
k=k/10;}}}
return 0;
}
|
Added after 12 minutes:
O bozhe dragi, kazhe aplikacija za zadache da mi je tochna maloprije pokrpana prva verzija ali mislim da sad i ovo odlichno radi.
Kod: | #include <stdio.h>
#include <stdlib.h>
void prva_zn(int x[],int n){
int i;
for(i=0;i<n;i++){
if(x[i]<0) x[i]=-x[i];}
for(i=0;i<n;i++){
while(x[i]>=10){
x[i]=x[i]/10;}}
}
int main(){
int n,x[131],i,m=1,t,k;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&x[i]);
if(x[i]%11==0 &&(m==1 || x[i]>m)) m=x[i];}
prva_zn(x,n);
if(m!=1){
for(i=0;i<n;i++){
k=abs(m);
t=k;
while(t>0){
if(x[i]==t%10) {printf("%d\n",i);break;}
t=t/10;}}}
return 0;
}
|
Hvala puno na svom ovom objashnjavanju.
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 16:30 sri, 16. 1. 2013 Naslov: |
|
|
[quote="celeste"][code:1]void prva_zn(int x[],int n){
int i;
for(i=0;i<n;i++){
while(x[i]>=10){
x[i]=x[i]/10;}}
}[/code:1][/quote]
Fali apsolutna vrijednost. Ocito, aplikacija je izgenerirala primjere na kojima se to nije primijetilo. :) Ostatak je, koliko vidim, u redu.
[quote="celeste"][code:1]void prva_zn(int x[],int n){
int i;
for(i=0;i<n;i++){
if(x[i]<0) x[i]=-x[i];}
for(i=0;i<n;i++){
while(x[i]>=10){
x[i]=x[i]/10;}}
}[/code:1][/quote]
Sitna opaska: dovoljna je jedna [tt]for[/tt]-petlja (aps. vrijednost i brisanje znamenaka ne trebaju svako svoju petlju).
[quote="celeste"]Hvala puno na svom ovom objashnjavanju.[/quote]
Drago mi je da je pomoglo. Nadam se da ce buduci zadaci sada ici lakse. :)
celeste (napisa): | Kod: | void prva_zn(int x[],int n){
int i;
for(i=0;i<n;i++){
while(x[i]>=10){
x[i]=x[i]/10;}}
} |
|
Fali apsolutna vrijednost. Ocito, aplikacija je izgenerirala primjere na kojima se to nije primijetilo. Ostatak je, koliko vidim, u redu.
celeste (napisa): | Kod: | void prva_zn(int x[],int n){
int i;
for(i=0;i<n;i++){
if(x[i]<0) x[i]=-x[i];}
for(i=0;i<n;i++){
while(x[i]>=10){
x[i]=x[i]/10;}}
} |
|
Sitna opaska: dovoljna je jedna for-petlja (aps. vrijednost i brisanje znamenaka ne trebaju svako svoju petlju).
celeste (napisa): | Hvala puno na svom ovom objashnjavanju. |
Drago mi je da je pomoglo. Nadam se da ce buduci zadaci sada ici lakse.
_________________ 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: 17:01 sri, 16. 1. 2013 Naslov: |
|
|
nene, ova verzija je prihvachena:
[code:1]int maxich(int x[],int n){
int i,max,t;
for(i=0;i<n;i++){
if(x[i]%11==0){
max=x[i];
for(i=0;i<n;i++){
if(x[i]%11==0 && x[i]>max) max=x[i];}}}
return max;
}
void obrnuto(int x[],int n){
int i,c=0,m,d;
for(i=0;i<n;i++){
m=x[i];
c=0;
while(m>0){
d=m%10;
c=c*10+d;
m=m/10;}
x[i]=c;}
}
int main(){
int n,i,x[131],max,t,d,m,z=0,c;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&x[i]);}
m=maxich(x,n);
for(i=0;i<n;i++){
if(x[i]<0) x[i]=-x[i];}
t=m;
obrnuto(x,n);
for(i=0;i<n;i++){
if(t<0) t=-t;
m=t;
while(m>0){
if(m%10==(x[i])%10) {printf("%d ",i);break;}
m=m/10;}}
return 0;
}[/code:1]
ne propushta aplikacija nishta provjeriti, sigurna sam. :D
nene, ova verzija je prihvachena:
Kod: | int maxich(int x[],int n){
int i,max,t;
for(i=0;i<n;i++){
if(x[i]%11==0){
max=x[i];
for(i=0;i<n;i++){
if(x[i]%11==0 && x[i]>max) max=x[i];}}}
return max;
}
void obrnuto(int x[],int n){
int i,c=0,m,d;
for(i=0;i<n;i++){
m=x[i];
c=0;
while(m>0){
d=m%10;
c=c*10+d;
m=m/10;}
x[i]=c;}
}
int main(){
int n,i,x[131],max,t,d,m,z=0,c;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&x[i]);}
m=maxich(x,n);
for(i=0;i<n;i++){
if(x[i]<0) x[i]=-x[i];}
t=m;
obrnuto(x,n);
for(i=0;i<n;i++){
if(t<0) t=-t;
m=t;
while(m>0){
if(m%10==(x[i])%10) {printf("%d ",i);break;}
m=m/10;}}
return 0;
} |
ne propushta aplikacija nishta provjeriti, sigurna sam.
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 17:34 sri, 16. 1. 2013 Naslov: |
|
|
[quote="celeste"]ne propushta aplikacija nishta provjeriti, sigurna sam. :D[/quote]
Aplikacija nije nista pametno. Testira 10 primjera i isproba studentovo i sluzbeno rjesenje. Ako ne daju isti rezultat (do na dopustive razlike, tipa brojeve i tip razmaka medju brojevima), rjesenje nije dobro.
Recimo, tvoj [tt]maxich()[/tt] i dalje vraca nedefiniranu vrijednost ako nema brojeva djeljivih s 11. Takav program moze, ali i ne mora raditi ispravno (ovisi o unesenim brojevima, a moze ovisiti i o compileru, OS-u,...). Verifikator je to prihvatio jer ocito nije izgenerirao primjer na kojem bi to "palo", ali na kolokviju bi svakako pogubila koji bod.
celeste (napisa): | ne propushta aplikacija nishta provjeriti, sigurna sam. |
Aplikacija nije nista pametno. Testira 10 primjera i isproba studentovo i sluzbeno rjesenje. Ako ne daju isti rezultat (do na dopustive razlike, tipa brojeve i tip razmaka medju brojevima), rjesenje nije dobro.
Recimo, tvoj maxich() i dalje vraca nedefiniranu vrijednost ako nema brojeva djeljivih s 11. Takav program moze, ali i ne mora raditi ispravno (ovisi o unesenim brojevima, a moze ovisiti i o compileru, OS-u,...). Verifikator je to prihvatio jer ocito nije izgenerirao primjer na kojem bi to "palo", ali na kolokviju bi svakako pogubila koji bod.
_________________ 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
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 19:06 sri, 16. 1. 2013 Naslov: |
|
|
Lakse je samo staviti inicijalizaciju od [tt]max[/tt], s time da 0 nije dobra vrijednost jer je djeljiva s 11. Recimo, za brojeve -11, 3, 0, -22, -7, trazeni maksimum je upravo 0. Treba nam nesto po cemu cemo znati da vrijednost koju funkcija vrati nije trazeni maksimum, npr. 1 (kako sam i prije koristio).
[code:1]int maxich(int x[],int n){
int i,max=1,t; /* <--- samo ovo je izmijenjeno */
for(i=0;i<n;i++){
if(x[i]%11==0){
max=x[i];
for(i=0;i<n;i++){
if(x[i]%11==0 && x[i]>max) max=x[i];}}}
return max;
}[/code:1]
Zatim se poziv u gl. programu sitno promijeni:
[code:1] m=maxich(x,n);
if (m != 1) { /* ili, u ovom slucaju ekvivalentno, if (x% 11), tj. if (x % 11 != 0) */
... /* sve kao i do sada */
}
return 0;[/code:1]
Kad vec toliko pisem, petlje u [tt]maxich()[/tt] funkcioniraju, ali nije dobra praksa imati petlju u petlji s istim indexom (postoje situacije i kad je to opravdano). Ja bih tu funkciju ovako napisao:
[code:1]int maxich(int x[], int n) {
int i, res = 1;
/* Nadji prvog: */
for (i = 0; i < n; i++)
if (x[i] % 11 == 0) {
res = x[i];
break;
}
/* Provjeri sve ostale */
i++; /* ovo moze i ne mora; bez toga se usporedba iz if() radi jos jednom za prethodno nadjeni broj */
while (i < n) {
if (x[i] % 11 == 0 && x[i] > res) res = x[i];
i++;
}
return res;
}[/code:1]
ili, krace, kako sam prije predlozio, u jednoj petlji s uvjetom "to je prvi takav ([tt]res == 1[/tt]) ili je ovaj veci od dosadasnjeg ([tt]x[i] > res[/tt])":
[code:1]int maxich(int x[], int n) {
int i, res = 1;
for (i = 0; i < n; i++)
if (x[i] % 11 == 0 && (res == 1 || x[i] > res)) res = x[i];
return res;
}[/code:1]
P.S. Zagrade
[tt]else[color=red]([/color]max==0[color=red])[/color];[/tt]
su vishak, a "[tt]==[/tt]" u
[tt]else(max[color=red]==[/color]0);[/tt]
je usporedba, a ne pridruzivanje. Ispravno je:
[tt]else max [color=green]=[/color] 0;[/tt]
iako je nepotrebno pridruzivati za svaki od svih brojeva prije prvog djeljivog s 11. Takodjer, takav [tt]else[/tt] cesto moze biti pogresan (bio bi skroz kriv da ta petlja ima makar 1 korak nakon prvog u kojem nadje broj djeljiv s 11), pa je bolje izbjegavati takve konstrukcije.
Lakse je samo staviti inicijalizaciju od max, s time da 0 nije dobra vrijednost jer je djeljiva s 11. Recimo, za brojeve -11, 3, 0, -22, -7, trazeni maksimum je upravo 0. Treba nam nesto po cemu cemo znati da vrijednost koju funkcija vrati nije trazeni maksimum, npr. 1 (kako sam i prije koristio).
Kod: | int maxich(int x[],int n){
int i,max=1,t; /* <--- samo ovo je izmijenjeno */
for(i=0;i<n;i++){
if(x[i]%11==0){
max=x[i];
for(i=0;i<n;i++){
if(x[i]%11==0 && x[i]>max) max=x[i];}}}
return max;
} |
Zatim se poziv u gl. programu sitno promijeni:
Kod: | m=maxich(x,n);
if (m != 1) { /* ili, u ovom slucaju ekvivalentno, if (x% 11), tj. if (x % 11 != 0) */
... /* sve kao i do sada */
}
return 0; |
Kad vec toliko pisem, petlje u maxich() funkcioniraju, ali nije dobra praksa imati petlju u petlji s istim indexom (postoje situacije i kad je to opravdano). Ja bih tu funkciju ovako napisao:
Kod: | int maxich(int x[], int n) {
int i, res = 1;
/* Nadji prvog: */
for (i = 0; i < n; i++)
if (x[i] % 11 == 0) {
res = x[i];
break;
}
/* Provjeri sve ostale */
i++; /* ovo moze i ne mora; bez toga se usporedba iz if() radi jos jednom za prethodno nadjeni broj */
while (i < n) {
if (x[i] % 11 == 0 && x[i] > res) res = x[i];
i++;
}
return res;
} |
ili, krace, kako sam prije predlozio, u jednoj petlji s uvjetom "to je prvi takav (res == 1) ili je ovaj veci od dosadasnjeg (x[i] > res)":
Kod: | int maxich(int x[], int n) {
int i, res = 1;
for (i = 0; i < n; i++)
if (x[i] % 11 == 0 && (res == 1 || x[i] > res)) res = x[i];
return res;
} |
P.S. Zagrade
else(max==0);
su vishak, a "==" u
else(max==0);
je usporedba, a ne pridruzivanje. Ispravno je:
else max = 0;
iako je nepotrebno pridruzivati za svaki od svih brojeva prije prvog djeljivog s 11. Takodjer, takav else cesto moze biti pogresan (bio bi skroz kriv da ta petlja ima makar 1 korak nakon prvog u kojem nadje broj djeljiv s 11), pa je bolje izbjegavati takve konstrukcije.
_________________ 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
|
|
[Vrh] |
|
marco ricci Forumaš(ica)
Pridružen/a: 26. 09. 2013. (10:03:55) Postovi: (B)16
Spol:
|
Postano: 4:28 sub, 12. 10. 2013 Naslov: preblema jezik |
|
|
bok kolegi,
imam problema, velik, ali nije s jezikom C, nego s hrvatskom :oops: ...
ne razumjem sto moram pisati....
Zadatak 5:
Napišite program koji učitava 7 cijelih brojeva, te ispisuje svakog koji je djeljiv s prethodno :?: :?: upisanim (prvi se nikad ne ispisuje).
Ispisane brojeve odvojite :shock: razmacima (program ih smijete ispisivati i za vrijeme učitavanja), a ako traženih brojeva nema, program ne smije ništa ispisati.
moze neki pisati samo primjer s brojevima?
hvala za pomoc....
bok kolegi,
imam problema, velik, ali nije s jezikom C, nego s hrvatskom ...
ne razumjem sto moram pisati....
Zadatak 5:
Napišite program koji učitava 7 cijelih brojeva, te ispisuje svakog koji je djeljiv s prethodno upisanim (prvi se nikad ne ispisuje).
Ispisane brojeve odvojite razmacima (program ih smijete ispisivati i za vrijeme učitavanja), a ako traženih brojeva nema, program ne smije ništa ispisati.
moze neki pisati samo primjer s brojevima?
hvala za pomoc....
|
|
[Vrh] |
|
JJ Forumaš(ica)
Pridružen/a: 05. 10. 2010. (14:35:40) Postovi: (34)16
Spol:
|
Postano: 7:15 sub, 12. 10. 2013 Naslov: Re: preblema jezik |
|
|
[quote="marco ricci"]bok kolegi,
imam problema, velik, ali nije s jezikom C, nego s hrvatskom :oops: ...
ne razumjem sto moram pisati....
Zadatak 5:
Napišite program koji učitava 7 cijelih brojeva, te ispisuje svakog koji je djeljiv s prethodno :?: :?: upisanim (prvi se nikad ne ispisuje).
Ispisane brojeve odvojite :shock: razmacima (program ih smijete ispisivati i za vrijeme učitavanja), a ako traženih brojeva nema, program ne smije ništa ispisati.
moze neki pisati samo primjer s brojevima?
hvala za pomoc....[/quote]
Primjer: recimo da učitavaš redom brojeve 2 5 10 11 7 21 2
Prvi se nikad ne ispisuje pa od broja 2 ništa. Zatim dolazi 5 i program provjerava je li on djeljiv s prethodnim (a to je 2). Nije pa ništa ne ispisuje. Zatim gleda broj 10 i provjerava je li on djeljiv s prethodnim, što je sad broj 5. Budući da je 10 djeljiv s 5, ispiše ga. Itd...
Dakle program bi na kraju za ovaj primjer trebao ispisati: 10 21
Nadam se da je sad jasnije :)
marco ricci (napisa): | bok kolegi,
imam problema, velik, ali nije s jezikom C, nego s hrvatskom ...
ne razumjem sto moram pisati....
Zadatak 5:
Napišite program koji učitava 7 cijelih brojeva, te ispisuje svakog koji je djeljiv s prethodno upisanim (prvi se nikad ne ispisuje).
Ispisane brojeve odvojite razmacima (program ih smijete ispisivati i za vrijeme učitavanja), a ako traženih brojeva nema, program ne smije ništa ispisati.
moze neki pisati samo primjer s brojevima?
hvala za pomoc.... |
Primjer: recimo da učitavaš redom brojeve 2 5 10 11 7 21 2
Prvi se nikad ne ispisuje pa od broja 2 ništa. Zatim dolazi 5 i program provjerava je li on djeljiv s prethodnim (a to je 2). Nije pa ništa ne ispisuje. Zatim gleda broj 10 i provjerava je li on djeljiv s prethodnim, što je sad broj 5. Budući da je 10 djeljiv s 5, ispiše ga. Itd...
Dakle program bi na kraju za ovaj primjer trebao ispisati: 10 21
Nadam se da je sad jasnije
|
|
[Vrh] |
|
marco ricci Forumaš(ica)
Pridružen/a: 26. 09. 2013. (10:03:55) Postovi: (B)16
Spol:
|
|
[Vrh] |
|
marco ricci Forumaš(ica)
Pridružen/a: 26. 09. 2013. (10:03:55) Postovi: (B)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 13:03 sub, 12. 10. 2013 Naslov: |
|
|
Za [tt]n = -33[/tt] trebas ispisati sumu svih prostih djelitelja brojeva -36, -35, -34, -33. Ti djelitelji su:
36 = 2*2*3*3 :arrow: 2+3 (kratkost se ignorira, pa svakog brojimo jednom)
35 = 5*7 :arrow: 5+7
34 = 2*17 :arrow: 2+17
33 = 3*11 :arrow: 3+11
Rezultat je 2+3+5+7+2+17+3+11.
Preporucam prije kolokvija proci stare kolokvije, s obzirom da ti je izricaj u tekstovima problem, a on je kroz kolegij bio solidno konstantan. Nije naodmet proci i kroz skriptu za vjezbe.
Za n = -33 trebas ispisati sumu svih prostih djelitelja brojeva -36, -35, -34, -33. Ti djelitelji su:
36 = 2*2*3*3 2+3 (kratkost se ignorira, pa svakog brojimo jednom)
35 = 5*7 5+7
34 = 2*17 2+17
33 = 3*11 3+11
Rezultat je 2+3+5+7+2+17+3+11.
Preporucam prije kolokvija proci stare kolokvije, s obzirom da ti je izricaj u tekstovima problem, a on je kroz kolegij bio solidno konstantan. Nije naodmet proci i kroz skriptu za vjezbe.
_________________ 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] |
|
marco ricci Forumaš(ica)
Pridružen/a: 26. 09. 2013. (10:03:55) Postovi: (B)16
Spol:
|
|
[Vrh] |
|
patakenjac Forumaš(ica)
Pridružen/a: 23. 10. 2011. (17:34:05) Postovi: (2F)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
patakenjac Forumaš(ica)
Pridružen/a: 23. 10. 2011. (17:34:05) Postovi: (2F)16
|
Postano: 19:45 ned, 12. 1. 2014 Naslov: |
|
|
Molim Vas možete li mi reć šta mi je krivo? Zadatak glasi:Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve koji se nalaze između a i b (uključivo i a i b), a u zapisu s bazom 18 imaju samo znamenke djeljive sa 10. Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema, program ispisuje poruku "Nema takvih brojeva.". Pazite da tekst bude naveden točno kako piše (bez navodnika)!
Oprez: može biti a<b ili a>b ili a=b!
Kod:
#include<stdio.h>
int f (int broj)
{
int k=0;
while(broj>0)
{
if((broj%18)!=10)k++;
broj/=18;
}
return k;
}
int main(void)
{
int a,b,i,br=0;
scanf("%d%d",&a,&b);
if(a<b)
for(i=a;i<=b;i++)
if(f(i)==0){printf("%d",i);br++;}
else if(a>b)
for(i=b;i<=a;i++)
if(f(i)==0){printf("%d",i);br++;}
else if(f(a)==0) {printf("%d",a);br++;}
if(br==0) printf("Nema takvih brojeva.");
return 0;
}
S obzirom da je u bazi 18, pretpostavila sam da je jedina znamenka djeljiva s 10 upravo A=10. Da li je to u redu? Ili sam krivo shvatila zadatak?!
Unaprijed hvala! :D
Molim Vas možete li mi reć šta mi je krivo? Zadatak glasi:Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve koji se nalaze između a i b (uključivo i a i b), a u zapisu s bazom 18 imaju samo znamenke djeljive sa 10. Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema, program ispisuje poruku "Nema takvih brojeva.". Pazite da tekst bude naveden točno kako piše (bez navodnika)!
Oprez: može biti a<b ili a>b ili a=b!
Kod:
#include<stdio.h>
int f (int broj)
{
int k=0;
while(broj>0)
{
if((broj%1!=10)k++;
broj/=18;
}
return k;
}
int main(void)
{
int a,b,i,br=0;
scanf("%d%d",&a,&b);
if(a<b)
for(i=a;i<=b;i++)
if(f(i)==0){printf("%d",i);br++;}
else if(a>b)
for(i=b;i<=a;i++)
if(f(i)==0){printf("%d",i);br++;}
else if(f(a)==0) {printf("%d",a);br++;}
if(br==0) printf("Nema takvih brojeva.");
return 0;
}
S obzirom da je u bazi 18, pretpostavila sam da je jedina znamenka djeljiva s 10 upravo A=10. Da li je to u redu? Ili sam krivo shvatila zadatak?!
Unaprijed hvala!
|
|
[Vrh] |
|
hendrix Forumaš(ica)
Pridružen/a: 03. 09. 2012. (15:59:06) Postovi: (92)16
|
|
[Vrh] |
|
|