Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
celeste Forumaš(ica)
Pridružen/a: 31. 10. 2009. (11:56:09) Postovi: (23)16
|
Postano: 19:29 uto, 28. 1. 2014 Naslov: 5. zadacha - 1. zadatak |
|
|
Sve oke, kod prihvachen.
[size=9][color=#999999]Added after 2 minutes:[/color][/size]
Hvala. Mozhe li se u ovom zadatku: "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 6, 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."
nekako rijeshiti stvar tako da ne trebam uchitavati indekse u novi niz i onda ga sortirati. Jer inache mi nisu u originalnom poretku.
[size=9][color=#999999]Added after 3 minutes:[/color][/size]
Kod izgleda ovak:
[code:1]#include <stdio.h>
#include <stdlib.h>
int p_z(int x){
int n;
n=x;
while(n>10){
n=n/10;}
return n;
}
int main(){
unsigned n;
int x[131],i,t,max;
scanf("%d",&n);
for(i=0;i<n;++i){
scanf("%d",&x[i]);}
for(i=0;i<n;++i){
if ((x[i]%6)==0) max=x[i];}
for(i=0;i<n;++i){
if(((x[i]%6)==0) && x[i]>max) max=x[i];}
t=max;
while(t>0){
for(i=0;i<n;++i){
if(p_z(x[i])==(t%10)) printf("%d ",i);}
t=t/10;}
return 0;
}
[/code:1]
Sve oke, kod prihvachen.
Added after 2 minutes:
Hvala. Mozhe li se u ovom zadatku: "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 6, 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."
nekako rijeshiti stvar tako da ne trebam uchitavati indekse u novi niz i onda ga sortirati. Jer inache mi nisu u originalnom poretku.
Added after 3 minutes:
Kod izgleda ovak:
Kod: | #include <stdio.h>
#include <stdlib.h>
int p_z(int x){
int n;
n=x;
while(n>10){
n=n/10;}
return n;
}
int main(){
unsigned n;
int x[131],i,t,max;
scanf("%d",&n);
for(i=0;i<n;++i){
scanf("%d",&x[i]);}
for(i=0;i<n;++i){
if ((x[i]%6)==0) max=x[i];}
for(i=0;i<n;++i){
if(((x[i]%6)==0) && x[i]>max) max=x[i];}
t=max;
while(t>0){
for(i=0;i<n;++i){
if(p_z(x[i])==(t%10)) printf("%d ",i);}
t=t/10;}
return 0;
}
|
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 20:00 uto, 28. 1. 2014 Naslov: |
|
|
Moze, naravno. Umjesto da radis:
[code:1]sjeckaj broj t po znamenkama i za svaku znamenku
trci po svim elementima niza i provjeri sto vec treba[/code:1]
napravi
[code:1]trci po svim elementima niza
t = max
sjeckaj broj t po znamenkama i za svaku znamenku i provjeri sto vec treba[/code:1]
Primijeti da ce ti prvo rjesenje ponekad elemente niza ispisati vise puta (npr. ako je maksimum 66; opcenitije, ako ima ponavljajuce znamenke). S drugim rjesenjem se to lako izbjegne pomocu jednostavnog [tt]break[/tt].
Dodatno, fali ti provjera da [tt]max[/tt] uopce postoji. Npr [tt]int postoji_max = 0;[/tt] i onda tamo gdje nadjes prvi potencijalni maksimum dodas [tt]postoji_max = 1;[/tt], pa negdje jos provjeris je li ta varijabla na nuli ili na jedinici.
Usput, koja je prva znamenka broja 100? Ili, opcenitije, bilo kojeg broja koji pocinje s "10"?
Moze, naravno. Umjesto da radis:
Kod: | sjeckaj broj t po znamenkama i za svaku znamenku
trci po svim elementima niza i provjeri sto vec treba |
napravi
Kod: | trci po svim elementima niza
t = max
sjeckaj broj t po znamenkama i za svaku znamenku i provjeri sto vec treba |
Primijeti da ce ti prvo rjesenje ponekad elemente niza ispisati vise puta (npr. ako je maksimum 66; opcenitije, ako ima ponavljajuce znamenke). S drugim rjesenjem se to lako izbjegne pomocu jednostavnog break.
Dodatno, fali ti provjera da max uopce postoji. Npr int postoji_max = 0; i onda tamo gdje nadjes prvi potencijalni maksimum dodas postoji_max = 1;, pa negdje jos provjeris je li ta varijabla na nuli ili na jedinici.
Usput, koja je prva znamenka broja 100? Ili, opcenitije, bilo kojeg broja koji pocinje s "10"?
_________________ 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] |
|
sionjungle Forumaš(ica)
Pridružen/a: 29. 01. 2014. (21:37:23) Postovi: (12)16
|
Postano: 21:42 sri, 29. 1. 2014 Naslov: |
|
|
Jel može pomoć, već sam peti puta predao program i uvijek mi veli da je za neki broj greska no meni sve radi normalno i vise ne znam sto da radim, ocito sam nesto krivo shvatio.
Napišite program koji učitava prirodni broj n, te "crta" pravokutni trokut sastavljen od zvjezdica ("*"). Trokut treba imati katete duljina n (vodoravna) i 4n (vertikalna), a pravi kut mora biti "nacrtan" u gornjem lijevom kutu.
Uputa: prvih 4 linija treba biti duljine n, idućih 4 duljine n-1, i tako dalje.
[code:1]#include <stdio.h>
int main(void)
{
int i,j,z,n;
scanf("%d",&n);
for(i=0;i<=4*n;i++)
{z=i/4;
for(j=1;j<=n-z;j++)
{
printf("*");
}
printf(" \n");
}
return 0;
}[/code:1]
Jel može pomoć, već sam peti puta predao program i uvijek mi veli da je za neki broj greska no meni sve radi normalno i vise ne znam sto da radim, ocito sam nesto krivo shvatio.
Napišite program koji učitava prirodni broj n, te "crta" pravokutni trokut sastavljen od zvjezdica ("*"). Trokut treba imati katete duljina n (vodoravna) i 4n (vertikalna), a pravi kut mora biti "nacrtan" u gornjem lijevom kutu.
Uputa: prvih 4 linija treba biti duljine n, idućih 4 duljine n-1, i tako dalje.
Kod: | #include <stdio.h>
int main(void)
{
int i,j,z,n;
scanf("%d",&n);
for(i=0;i<=4*n;i++)
{z=i/4;
for(j=1;j<=n-z;j++)
{
printf("*");
}
printf(" \n");
}
return 0;
} |
|
|
[Vrh] |
|
krcko Forumaš nagrađen za životno djelo
Pridružen/a: 07. 10. 2002. (15:57:59) Postovi: (18B3)16
|
|
[Vrh] |
|
celeste Forumaš(ica)
Pridružen/a: 31. 10. 2009. (11:56:09) Postovi: (23)16
|
Postano: 22:32 sri, 29. 1. 2014 Naslov: 5. zadacha - 1. zadatak |
|
|
Hvala. Meni se čini da je ovo oke.
[code:1]#include <stdio.h>
#include <stdlib.h>
int p_z(int x){
int n;
n=x;
while(n>=10){
n=n/10;}
return n;
}
int main(){
unsigned n;
int x[131],a[131],i,j,t,max,s=0,postoji_max=0;
scanf("%d",&n);
for(i=0;i<n;++i){
scanf("%d",&x[i]);}
for(i=0;i<n;++i){
if ((x[i]%6)==0) {max=x[i];postoji_max=1;}}
for(i=0;i<n;++i){
if(((x[i]%6)==0) && x[i]>max) max=x[i];}
for(i=0;i<n;++i){
t=max;
while(t>0){
if(p_z(x[i])==(t%10) && postoji_max==1) {printf("%d ", i);break;}
t=t/10;}}
return 0;
}
[/code:1]
Hvala. Meni se čini da je ovo oke.
Kod: | #include <stdio.h>
#include <stdlib.h>
int p_z(int x){
int n;
n=x;
while(n>=10){
n=n/10;}
return n;
}
int main(){
unsigned n;
int x[131],a[131],i,j,t,max,s=0,postoji_max=0;
scanf("%d",&n);
for(i=0;i<n;++i){
scanf("%d",&x[i]);}
for(i=0;i<n;++i){
if ((x[i]%6)==0) {max=x[i];postoji_max=1;}}
for(i=0;i<n;++i){
if(((x[i]%6)==0) && x[i]>max) max=x[i];}
for(i=0;i<n;++i){
t=max;
while(t>0){
if(p_z(x[i])==(t%10) && postoji_max==1) {printf("%d ", i);break;}
t=t/10;}}
return 0;
}
|
|
|
[Vrh] |
|
Sari Forumaš(ica)
Pridružen/a: 07. 12. 2009. (19:58:14) Postovi: (11)16
|
Postano: 23:56 sri, 29. 1. 2014 Naslov: |
|
|
Napišite program koji učitava prirodni broj n<71, te niz od n cijelih brojeva. Program treba u originalnom poretku ispisati sve elemente x[i] niza takve da je ostatak pri dijeljenju apsolutne vrijednosti x[i] s 18 jednak ostatku koji pri istom takvom dijeljenju daje najmanji od učitanih brojeva. Ispisane brojeve odvojite razmakom.
ovako sam ga rijesio... bar mislio da sam ga rijesio, neznam gdje sam pogrijesio
[code:1]#include <stdio.h>
int main(){
int n,min,i,x,p,a[71],b[71];
i=0;
scanf("%d",&n);
while (i<n){
scanf("%d",&a[i]);
i++;
}
for (i=0; i<n; i++){
if (a[i]<0){
b[i]=-a[i];
}
else b[i]=a[i];
}
min=b[0];
for(i=0; i<n; i++){
if(min>b[i]) min=b[i];
}
x=min%18;
for(i=0; i<n; i++){
if (b[i]%18==x) printf("%d ", a[i]);
}
scanf("%%");
return 0;
}[/code:1]
Napišite program koji učitava prirodni broj n<71, te niz od n cijelih brojeva. Program treba u originalnom poretku ispisati sve elemente x[i] niza takve da je ostatak pri dijeljenju apsolutne vrijednosti x[i] s 18 jednak ostatku koji pri istom takvom dijeljenju daje najmanji od učitanih brojeva. Ispisane brojeve odvojite razmakom.
ovako sam ga rijesio... bar mislio da sam ga rijesio, neznam gdje sam pogrijesio
Kod: | #include <stdio.h>
int main(){
int n,min,i,x,p,a[71],b[71];
i=0;
scanf("%d",&n);
while (i<n){
scanf("%d",&a[i]);
i++;
}
for (i=0; i<n; i++){
if (a[i]<0){
b[i]=-a[i];
}
else b[i]=a[i];
}
min=b[0];
for(i=0; i<n; i++){
if(min>b[i]) min=b[i];
}
x=min%18;
for(i=0; i<n; i++){
if (b[i]%18==x) printf("%d ", a[i]);
}
scanf("%%");
return 0;
} |
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
Sari Forumaš(ica)
Pridružen/a: 07. 12. 2009. (19:58:14) Postovi: (11)16
|
|
[Vrh] |
|
trala Forumaš(ica)
Pridružen/a: 26. 03. 2013. (16:43:54) Postovi: (8)16
Lokacija: somewhere
|
|
[Vrh] |
|
think_ink Forumaš(ica)
Pridružen/a: 21. 11. 2013. (14:44:12) Postovi: (28)16
Spol:
|
Postano: 16:41 čet, 30. 1. 2014 Naslov: |
|
|
Zadatak:
Napišite program koji učitava prirodni broj n≤17, te niz od n cijelih brojeva. Program treba ispisati sumu zadnjih 7 neparnih elemenata niza.
Ako neparnih brojeva ima manje od 7, ispišite sumu svih neparnih. Ako neparnih brojeva uopće nema u nizu, ispišite 0.
[code:1]#include <stdio.h>
int main()
{
int n, niz[18], suma = 0, i, indeks = 0;
scanf("%d", &n);
if(n < 18)
{
for(i = 0; i < n; i++)
{
scanf("%d", &niz[i]);
}
for(i = (n-1); i >= 0; i--)
{
while(indeks < 7)
{
if(niz[i] % 2 != 0)
{
suma += niz[i];
indeks++;
}
break;
}
}
printf("%d", suma);
}
return 0;
}[/code:1]
Aplikacija za zadaće kaže da je netočno za input: 5 6266 7191 8412 1014 5329
Kada ja upišem te brojeve, izbaci mi rezultat 12520 što je točno 7191 + 5329
Svaka pomoć je dobrodošla :)
EDIT: Poslala sam ponovno isto i ovaj put je prihvatilo. Malo me zeza ova aplikacija za zadaće hah
Zadatak:
Napišite program koji učitava prirodni broj n≤17, te niz od n cijelih brojeva. Program treba ispisati sumu zadnjih 7 neparnih elemenata niza.
Ako neparnih brojeva ima manje od 7, ispišite sumu svih neparnih. Ako neparnih brojeva uopće nema u nizu, ispišite 0.
Kod: | #include <stdio.h>
int main()
{
int n, niz[18], suma = 0, i, indeks = 0;
scanf("%d", &n);
if(n < 18)
{
for(i = 0; i < n; i++)
{
scanf("%d", &niz[i]);
}
for(i = (n-1); i >= 0; i--)
{
while(indeks < 7)
{
if(niz[i] % 2 != 0)
{
suma += niz[i];
indeks++;
}
break;
}
}
printf("%d", suma);
}
return 0;
} |
Aplikacija za zadaće kaže da je netočno za input: 5 6266 7191 8412 1014 5329
Kada ja upišem te brojeve, izbaci mi rezultat 12520 što je točno 7191 + 5329
Svaka pomoć je dobrodošla
EDIT: Poslala sam ponovno isto i ovaj put je prihvatilo. Malo me zeza ova aplikacija za zadaće hah
|
|
[Vrh] |
|
sionjungle Forumaš(ica)
Pridružen/a: 29. 01. 2014. (21:37:23) Postovi: (12)16
|
Postano: 17:26 čet, 30. 1. 2014 Naslov: Problem |
|
|
Ja se već jedno vrijeme mučim sa zadaćama i stvarno neznam u čemu je problem.
Znači, ja pošaljem svoje rješenje aplikaciji i aplikacija mi ga ne prizna točno te mi pošalje da ne vrijedi za neki određeni broj. No, kad ja taj broj uvrstim meni sve radi ispravno.
Ovdje se ne radi samo o jednom zadatku,što bi moglo upučivati na neku pogrešku vezanu uz ispis(razmak i sl.),već o nekolicini njih te mi više stvarno nije jasno što bi mogao biti problem.
Molio bih da ako je netko imao takav problem i uspi ga je rješiti da me uputi jer ja više stvarno neznam što bih mogao promjeniti,
Ja se već jedno vrijeme mučim sa zadaćama i stvarno neznam u čemu je problem.
Znači, ja pošaljem svoje rješenje aplikaciji i aplikacija mi ga ne prizna točno te mi pošalje da ne vrijedi za neki određeni broj. No, kad ja taj broj uvrstim meni sve radi ispravno.
Ovdje se ne radi samo o jednom zadatku,što bi moglo upučivati na neku pogrešku vezanu uz ispis(razmak i sl.),već o nekolicini njih te mi više stvarno nije jasno što bi mogao biti problem.
Molio bih da ako je netko imao takav problem i uspi ga je rješiti da me uputi jer ja više stvarno neznam što bih mogao promjeniti,
|
|
[Vrh] |
|
Sari Forumaš(ica)
Pridružen/a: 07. 12. 2009. (19:58:14) Postovi: (11)16
|
Postano: 23:27 čet, 30. 1. 2014 Naslov: |
|
|
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 8, 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.
opet ne znam sta ne valja pa bih molio za pomoc
[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];
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]%8==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]
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 8, 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.
opet ne znam sta ne valja pa bih molio za pomoc
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];
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]%8==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;
} |
|
|
[Vrh] |
|
Sari Forumaš(ica)
Pridružen/a: 07. 12. 2009. (19:58:14) Postovi: (11)16
|
|
[Vrh] |
|
|