Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
gflegar Forumaš(ica)


Pridružen/a: 12. 10. 2011. (15:03:41) Postovi: (10D)16
Spol: 
|
|
[Vrh] |
|
Darija.x Forumaš(ica)

Pridružen/a: 10. 07. 2008. (18:31:47) Postovi: (34)16
Lokacija: Velika Gorica
|
Postano: 23:36 ned, 8. 1. 2012 Naslov: |
|
|
[quote="vsego"]Prvo, ne trebaju ti toliki slucajevi:
[code:1]if (n < 7) {
from = n;
to = 7;
} else {
from = 7;
to = n;
}
for (p = from; p <= to; ++p) {
int ap = (p < 0 ? -p : p);
...
}[/code:1]
Drugo, imas brojac for-petlje koji se zove [tt]i[/tt], ali ga onda u while-petlji "sazvaces" (dijelis dok ne padne na 1). Sto bi trebala biti njegova vrijednost u iducem koraku for-petlje?
Trece, cini mi se da ti [tt]p[/tt] ima dvostruku ulogu. Malo zelis da je to broj cije proste fatkore pregledavas (u for-petljama ima tu ulogu), a malo da je to sam prosti faktor (u while-petljama).
Preporucam da prvo slozis program koji ce racunati sumu prostih faktora za neki ucitani [tt]temp[/tt], a onda da to upetljas u petlju koja ce racunati sumu faktora za sve brojeve izmedju [tt]n[/tt] i 7. Varijablu u toj petlji nazovi [tt]t[/tt], da se ne pokolje s [tt]p[/tt]-om iz algoritma za proste faktore i njenu vrijednost kopiraj u prije spomenuti [tt]temp[/tt] (tako da dijeljenje ne unisti vrijednost od [tt]t[/tt]).[/quote]
hvala :!: :wink:
vsego (napisa): | Prvo, ne trebaju ti toliki slucajevi:
Kod: | if (n < 7) {
from = n;
to = 7;
} else {
from = 7;
to = n;
}
for (p = from; p <= to; ++p) {
int ap = (p < 0 ? -p : p);
...
} |
Drugo, imas brojac for-petlje koji se zove i, ali ga onda u while-petlji "sazvaces" (dijelis dok ne padne na 1). Sto bi trebala biti njegova vrijednost u iducem koraku for-petlje?
Trece, cini mi se da ti p ima dvostruku ulogu. Malo zelis da je to broj cije proste fatkore pregledavas (u for-petljama ima tu ulogu), a malo da je to sam prosti faktor (u while-petljama).
Preporucam da prvo slozis program koji ce racunati sumu prostih faktora za neki ucitani temp, a onda da to upetljas u petlju koja ce racunati sumu faktora za sve brojeve izmedju n i 7. Varijablu u toj petlji nazovi t, da se ne pokolje s p-om iz algoritma za proste faktore i njenu vrijednost kopiraj u prije spomenuti temp (tako da dijeljenje ne unisti vrijednost od t). |
hvala
|
|
[Vrh] |
|
homoviator Forumaš(ica)

Pridružen/a: 31. 01. 2011. (18:42:32) Postovi: (3A)16
|
|
[Vrh] |
|
gflegar Forumaš(ica)


Pridružen/a: 12. 10. 2011. (15:03:41) Postovi: (10D)16
Spol: 
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3561)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
cocco Forumaš(ica)

Pridružen/a: 21. 01. 2010. (22:06:02) Postovi: (4D)16
|
Postano: 21:38 pon, 9. 1. 2012 Naslov: |
|
|
ako moze i meni mala pomoc oko 4.zadatka 4. zadace,racunala sam cijelo vrijeme da znam to rijesiti medjutim iz nekog razloga mi aplikacija za zadace rjesenje ne prihvaca kao tocno :S
[code:1]#include<stdio.h>
int main(void)
{
int k,n,i,j;
scanf("%d",&n);
for(k=n;k>0;k=k-1)
{
for(i=1;i<=3;i++){
for(j=1;j<=k;j++){
if((k==n && i==1)||j==1 ||j==k)
printf("*");
else printf(" ");}
printf("\n");
}
}
return 0;}[/code:1]
ako moze i meni mala pomoc oko 4.zadatka 4. zadace,racunala sam cijelo vrijeme da znam to rijesiti medjutim iz nekog razloga mi aplikacija za zadace rjesenje ne prihvaca kao tocno :S
Kod: | #include<stdio.h>
int main(void)
{
int k,n,i,j;
scanf("%d",&n);
for(k=n;k>0;k=k-1)
{
for(i=1;i<=3;i++){
for(j=1;j<=k;j++){
if((k==n && i==1)||j==1 ||j==k)
printf("*");
else printf(" ");}
printf("\n");
}
}
return 0;} |
|
|
[Vrh] |
|
gflegar Forumaš(ica)


Pridružen/a: 12. 10. 2011. (15:03:41) Postovi: (10D)16
Spol: 
|
|
[Vrh] |
|
cocco Forumaš(ica)

Pridružen/a: 21. 01. 2010. (22:06:02) Postovi: (4D)16
|
|
[Vrh] |
|
gflegar Forumaš(ica)


Pridružen/a: 12. 10. 2011. (15:03:41) Postovi: (10D)16
Spol: 
|
|
[Vrh] |
|
cocco Forumaš(ica)

Pridružen/a: 21. 01. 2010. (22:06:02) Postovi: (4D)16
|
|
[Vrh] |
|
frutabella Forumaš(ica)

Pridružen/a: 09. 10. 2010. (16:35:36) Postovi: (24E)16
|
Postano: 4:01 uto, 10. 1. 2012 Naslov: |
|
|
[quote="homoviator"]Može pomoć, prog ne radi za negativne brojeve. Gdje je greska?
-Napišite program koji učitava prirodni broj n<31, te niz od n cijelih brojeva. Program treba učitane brojeve ispisati padajuće sortirano prema sumi znamenaka u bazi 13; ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 13, onda ih uspoređujete na uobičajeni način. Ispisane brojeve odvojite razmacima.-
[code:1]
#include <stdio.h>
int sumaZnam(int niz)
{
int suma=0;
if(niz<0) niz=-niz;
while(niz>0)
{
suma=+(niz%13);
niz/=13;
}
return suma;
}
int main(void)
{
int n,niz[31],suma,i,j,temp;
scanf("%d",&n);
if(n<31 && n>0)
{
for(i=0;i<n;i++)
{
scanf("%d",&niz[i]);
}
}
[b] for(i=0;i<n-1;i++)[/b]
{
suma=sumaZnam(niz[i]);
[b]for(j=i+1;j<n;j++)[/b]
{
if(suma<sumaZnam(niz[j]))
{
temp=niz[i];
niz[i]=niz[j];
niz[j]=temp;
}
else if(suma==sumaZnam(niz[j]) && niz[i]<niz[j])
{
temp=niz[i];
niz[i]=niz[j];
niz[j]=temp;
}
suma=sumaZnam(niz[i]);
}
}
for(i=0;i<n-1;i++) printf("%d,",niz[i]);
printf("%d",niz[n-1]);
return 0;
}
[/code:1][/quote]
Zar nebi tu trebale ici druge varijable, u prvoj for petlji recimo
j=0; j<[b]i-1[/b]; j++;
a u drugoj for petlji recimo
k=j+1; k<[b]i[/b]; k++;
Jer ako ucitavamo recimo n=6 brojeva, tada nam onaj [b]i[/b] (u for petlji gdje ucitavamo) ide do 5, pa onda gledamo nizove od j=0 do j=4 te od k=1 do k=5.
Da li grijesim? Ako ne, onda treba i zadnju for petlju kojom zelimo ispisati niz promijeniti for(j=0; j<=i-1; j++) , mislim da ovako.
homoviator (napisa): | Može pomoć, prog ne radi za negativne brojeve. Gdje je greska?
-Napišite program koji učitava prirodni broj n<31, te niz od n cijelih brojeva. Program treba učitane brojeve ispisati padajuće sortirano prema sumi znamenaka u bazi 13; ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 13, onda ih uspoređujete na uobičajeni način. Ispisane brojeve odvojite razmacima.-
Kod: |
#include <stdio.h>
int sumaZnam(int niz)
{
int suma=0;
if(niz<0) niz=-niz;
while(niz>0)
{
suma=+(niz%13);
niz/=13;
}
return suma;
}
int main(void)
{
int n,niz[31],suma,i,j,temp;
scanf("%d",&n);
if(n<31 && n>0)
{
for(i=0;i<n;i++)
{
scanf("%d",&niz[i]);
}
}
[b] for(i=0;i<n-1;i++)[/b]
{
suma=sumaZnam(niz[i]);
[b]for(j=i+1;j<n;j++)[/b]
{
if(suma<sumaZnam(niz[j]))
{
temp=niz[i];
niz[i]=niz[j];
niz[j]=temp;
}
else if(suma==sumaZnam(niz[j]) && niz[i]<niz[j])
{
temp=niz[i];
niz[i]=niz[j];
niz[j]=temp;
}
suma=sumaZnam(niz[i]);
}
}
for(i=0;i<n-1;i++) printf("%d,",niz[i]);
printf("%d",niz[n-1]);
return 0;
}
|
|
Zar nebi tu trebale ici druge varijable, u prvoj for petlji recimo
j=0; j<i-1; j++;
a u drugoj for petlji recimo
k=j+1; k<i; k++;
Jer ako ucitavamo recimo n=6 brojeva, tada nam onaj i (u for petlji gdje ucitavamo) ide do 5, pa onda gledamo nizove od j=0 do j=4 te od k=1 do k=5.
Da li grijesim? Ako ne, onda treba i zadnju for petlju kojom zelimo ispisati niz promijeniti for(j=0; j⇐i-1; j++) , mislim da ovako.
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3561)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
homoviator Forumaš(ica)

Pridružen/a: 31. 01. 2011. (18:42:32) Postovi: (3A)16
|
|
[Vrh] |
|
frutabella Forumaš(ica)

Pridružen/a: 09. 10. 2010. (16:35:36) Postovi: (24E)16
|
|
[Vrh] |
|
homoviator Forumaš(ica)

Pridružen/a: 31. 01. 2011. (18:42:32) Postovi: (3A)16
|
Postano: 20:37 sri, 11. 1. 2012 Naslov: |
|
|
[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 15, 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.
[/code:1]
[code:1]
#include <stdio.h>
int prvaznam(n)
{
if(n==0) return n;
else
{if(n<0) n=-n;
while(n>0)
{
if(n<10) {return n; break;}
else n/=10;
}
}
}
int main(void)
{
int n,x[131],max,i,zn,tempmax,tx,zast=0;
scanf("%d",&n);
if(n<131 && n>0)
{
for(i=0;i<n;i++)
{
scanf("%d",&x[i]);
}
int j=0;
for(i=0;i<n;i++)
{
if(x[i]<0) tx=-x[i];
else tx=x[i];
if(tx%15==0 && j==0) {max=x[i]; j++; zast=1;}
if(tx%15==0 && max<x[i]) {max=x[i]; zast=1;}
}
if(zast==1)
{
printf("%d",max);
if(max<0) max=-max;
for(i=0;i<n;i++)
{
tempmax=max;
zn=prvaznam(x[i]);
while(tempmax>0)
{
if((tempmax%10)==zn) {printf(" %d",i); break;}
tempmax/=10;
}
}
}
}
return 0;
}
[/code:1]
netočno za ovaj input:
[code:1]
(130 -50 -13 28 29 -85 95 -36 49 -89 -63 -29
-75 79 97 -74 -83 62 -50 36 95 -20 -91 -1 41 -97 25 -93 44 41 61 54 91 -53 -19
19 -37 -24 84 -89 -12 -80 -17 13 100 -21 39 -84 -60 89 53 -66 -32 63 33 -92 66
-43 -84 10 99 77 -37 89 -76 45 7 -13 -80 -9 -2 8 11 81 -80 10 -41 60 27 0 48 -21
35 -84 -59 -33 -75 -93 25 -59 17 23 -83 81 12 -58 25 -81 29 46 10 -73 -46 -80
-92 -26 31 -32 -67 -43 68 82 37 2 98 79 70 -78 86 -5 -36 3 -82 -18 -16 31 24 -92
50 -47 55)
[/code:1]
Unaprijed ispričavam zbog ovog enormnog posta, ali trebam pomoć... što nije ok? Provjerih jedan ovakav sličan input i zadovoljio je i max i indekse ...
Kod: |
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 15, 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(n)
{
if(n==0) return n;
else
{if(n<0) n=-n;
while(n>0)
{
if(n<10) {return n; break;}
else n/=10;
}
}
}
int main(void)
{
int n,x[131],max,i,zn,tempmax,tx,zast=0;
scanf("%d",&n);
if(n<131 && n>0)
{
for(i=0;i<n;i++)
{
scanf("%d",&x[i]);
}
int j=0;
for(i=0;i<n;i++)
{
if(x[i]<0) tx=-x[i];
else tx=x[i];
if(tx%15==0 && j==0) {max=x[i]; j++; zast=1;}
if(tx%15==0 && max<x[i]) {max=x[i]; zast=1;}
}
if(zast==1)
{
printf("%d",max);
if(max<0) max=-max;
for(i=0;i<n;i++)
{
tempmax=max;
zn=prvaznam(x[i]);
while(tempmax>0)
{
if((tempmax%10)==zn) {printf(" %d",i); break;}
tempmax/=10;
}
}
}
}
return 0;
}
|
netočno za ovaj input:
Kod: |
(130 -50 -13 28 29 -85 95 -36 49 -89 -63 -29
-75 79 97 -74 -83 62 -50 36 95 -20 -91 -1 41 -97 25 -93 44 41 61 54 91 -53 -19
19 -37 -24 84 -89 -12 -80 -17 13 100 -21 39 -84 -60 89 53 -66 -32 63 33 -92 66
-43 -84 10 99 77 -37 89 -76 45 7 -13 -80 -9 -2 8 11 81 -80 10 -41 60 27 0 48 -21
35 -84 -59 -33 -75 -93 25 -59 17 23 -83 81 12 -58 25 -81 29 46 10 -73 -46 -80
-92 -26 31 -32 -67 -43 68 82 37 2 98 79 70 -78 86 -5 -36 3 -82 -18 -16 31 24 -92
50 -47 55)
|
Unaprijed ispričavam zbog ovog enormnog posta, ali trebam pomoć... što nije ok? Provjerih jedan ovakav sličan input i zadovoljio je i max i indekse ...
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3561)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
cocco Forumaš(ica)

Pridružen/a: 21. 01. 2010. (22:06:02) Postovi: (4D)16
|
|
[Vrh] |
|
gflegar Forumaš(ica)


Pridružen/a: 12. 10. 2011. (15:03:41) Postovi: (10D)16
Spol: 
|
|
[Vrh] |
|
cocco Forumaš(ica)

Pridružen/a: 21. 01. 2010. (22:06:02) Postovi: (4D)16
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3561)16
Spol: 
Lokacija: /sbin/init
|
Postano: 23:47 sri, 11. 1. 2012 Naslov: |
|
|
[quote="cocco"]a zar nije x[130] onda ako n mora biti strogo manje od 131?[/quote]
Tocno, ali to verifikatoru ne smeta.
@gflegar: Ne, bolje je razumjeti gradivo kako spada. U drugom semestru cete gotovo sigurno ponegdje dobiti opasku u stilu "alocirajte najmanje potrebno memorije" i gubit ce se bodovi ako se alocira "niz malo veci od potrebnoga". Ne zaboravi, nama je cilj provjeriti znanje i razumijevanje, pa dajemo i takve zahtjeve.
cocco (napisa): | a zar nije x[130] onda ako n mora biti strogo manje od 131? |
Tocno, ali to verifikatoru ne smeta.
@gflegar: Ne, bolje je razumjeti gradivo kako spada. U drugom semestru cete gotovo sigurno ponegdje dobiti opasku u stilu "alocirajte najmanje potrebno memorije" i gubit ce se bodovi ako se alocira "niz malo veci od potrebnoga". Ne zaboravi, nama je cilj provjeriti znanje i razumijevanje, pa dajemo i takve zahtjeve.
_________________ 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] |
|
|