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

Pridružen/a: 29. 09. 2011. (15:56:35) Postovi: (52)16
|
Postano: 19:53 ned, 20. 11. 2011 Naslov: |
|
|
jos nitko nije otvorio 32. zad. kako mi se cini, pa cu ja XD moj hint je ovaj: vrtim for od m do n, stavim x=m, zapisem m u bazi 2.sad za to ispitam je li palindrom i ako je, onda ispisem x...no sad, pitanje je sljedece...npr, opcenito napises program koji pretvara dekatski broj u binarni i sad upises 5, komp ispise 101. No, to nije broj 101, to je niz od 3 znamenke...e sad, jel mogu ja to ikako bez upotrebe niza pretvorit u broj 101...ako to mogu, onda bi znala rijesit zadatak na onaj gore opisan nacin.ako je moj hint skrooz kriv, molim nekog nek mi kaze kako da pravilno razmisljam o ovom zadatku :)) hvala :D
jos nitko nije otvorio 32. zad. kako mi se cini, pa cu ja XD moj hint je ovaj: vrtim for od m do n, stavim x=m, zapisem m u bazi 2.sad za to ispitam je li palindrom i ako je, onda ispisem x...no sad, pitanje je sljedece...npr, opcenito napises program koji pretvara dekatski broj u binarni i sad upises 5, komp ispise 101. No, to nije broj 101, to je niz od 3 znamenke...e sad, jel mogu ja to ikako bez upotrebe niza pretvorit u broj 101...ako to mogu, onda bi znala rijesit zadatak na onaj gore opisan nacin.ako je moj hint skrooz kriv, molim nekog nek mi kaze kako da pravilno razmisljam o ovom zadatku ) hvala
|
|
[Vrh] |
|
Zenon Forumaš(ica)


Pridružen/a: 09. 09. 2011. (19:14:43) Postovi: (2B1)16
Sarma: -
Lokacija: [tex]\pm\infty[/tex]
|
Postano: 20:05 ned, 20. 11. 2011 Naslov: |
|
|
[quote="vsego"]@Zenon:
[code:1]$2 2
1 0
0 0
DA[/code:1]
Na dobrom si putu, ali provjeravas samo [tt]a == b[/tt] kad bi morali biti razliciti. A sto je s provjerom [tt]a != b[/tt] kad bi trebali biti jednaki?[/quote]
Evo ga, sada bi onda trebalo valjati :P Napokon...
[code:1]#include<stdio.h>
int main(void)
{
int n,m,i,j,a,b,ODGOVOR=1;
scanf("%d %d",&m,&n);
for ( i=0; i<m; i++)
{
for ( j=0; j<n; j++ )
{
if ( i==0 && j==0 ) scanf("%d",&a);
else
{
scanf("%d",&b);
if ( (i+j)%2==1 && b==a ) ODGOVOR=0;
if ( (i+j)%2==0 && b!=a ) ODGOVOR=0;
}
}
}
if (ODGOVOR) printf("DA");
else printf("NE");
return 0;
}[/code:1]
I imam još jedno pitanje za onaj zadatak gdje se treba zamijenici cijeli i decimalni dio tipa 12.3456 => 3456.12.
Moj kod:
[code:1]#include<stdio.h>
int main(void)
{
double x;
float dec1;
int cijeli,dec;
scanf("%lf",&x);
cijeli=(int)x;
dec1=(x-cijeli)*10000;
dec=(int)dec1;
while ( dec%10==0 && dec!=0 ) dec/=10;
printf("%d.%d", dec,cijeli);
return 0;
}
[/code:1]
I sad imam jedno pitanje.
Prvo sam radio bez float dec1 pa je jasno kako sam onda računao dec.
Zatim sam uveo prvo double dec1 i i dalje nije radilo, a kada sam stavio float dec1 sve radi.
S obzirom da je double zapravo long float, ne razumijem zašto mi nije radilo za double dec1, a za float dec1 radi?
Da nisam slučajno nabasao na riješenje, ne bih nikada došao razmišljanjem do njega, a sada kada sam i nabasao, ne razumijem :P
Bez dec1: 12.3456 => 3455.12
double dec1: 3455.12
float dec1: 3456.12
Hvala unaprijed.
vsego (napisa): | @Zenon:
Na dobrom si putu, ali provjeravas samo a == b kad bi morali biti razliciti. A sto je s provjerom a != b kad bi trebali biti jednaki? |
Evo ga, sada bi onda trebalo valjati Napokon...
Kod: | #include<stdio.h>
int main(void)
{
int n,m,i,j,a,b,ODGOVOR=1;
scanf("%d %d",&m,&n);
for ( i=0; i<m; i++)
{
for ( j=0; j<n; j++ )
{
if ( i==0 && j==0 ) scanf("%d",&a);
else
{
scanf("%d",&b);
if ( (i+j)%2==1 && b==a ) ODGOVOR=0;
if ( (i+j)%2==0 && b!=a ) ODGOVOR=0;
}
}
}
if (ODGOVOR) printf("DA");
else printf("NE");
return 0;
} |
I imam još jedno pitanje za onaj zadatak gdje se treba zamijenici cijeli i decimalni dio tipa 12.3456 ⇒ 3456.12.
Moj kod:
Kod: | #include<stdio.h>
int main(void)
{
double x;
float dec1;
int cijeli,dec;
scanf("%lf",&x);
cijeli=(int)x;
dec1=(x-cijeli)*10000;
dec=(int)dec1;
while ( dec%10==0 && dec!=0 ) dec/=10;
printf("%d.%d", dec,cijeli);
return 0;
}
|
I sad imam jedno pitanje.
Prvo sam radio bez float dec1 pa je jasno kako sam onda računao dec.
Zatim sam uveo prvo double dec1 i i dalje nije radilo, a kada sam stavio float dec1 sve radi.
S obzirom da je double zapravo long float, ne razumijem zašto mi nije radilo za double dec1, a za float dec1 radi?
Da nisam slučajno nabasao na riješenje, ne bih nikada došao razmišljanjem do njega, a sada kada sam i nabasao, ne razumijem
Bez dec1: 12.3456 ⇒ 3455.12
double dec1: 3455.12
float dec1: 3456.12
Hvala unaprijed.
|
|
[Vrh] |
|
anamarie Forumaš(ica)

Pridružen/a: 07. 09. 2011. (10:59:19) Postovi: (87)16
Spol: 
|
Postano: 20:05 ned, 20. 11. 2011 Naslov: |
|
|
[quote="jema"]jos nitko nije otvorio 32. zad. kako mi se cini, pa cu ja XD moj hint je ovaj: vrtim for od m do n, stavim x=m, zapisem m u bazi 2.sad za to ispitam je li palindrom i ako je, onda ispisem x...no sad, pitanje je sljedece...npr, opcenito napises program koji pretvara dekatski broj u binarni i sad upises 5, komp ispise 101. No, to nije broj 101, to je niz od 3 znamenke...e sad, jel mogu ja to ikako bez upotrebe niza pretvorit u broj 101...ako to mogu, onda bi znala rijesit zadatak na onaj gore opisan nacin.ako je moj hint skrooz kriv, molim nekog nek mi kaze kako da pravilno razmisljam o ovom zadatku :)) hvala :D[/quote]
evo moj kod,mislim da je točan:
[code:1]#include<stdio.h>
int main() {
int m,n,i,x,y;
scanf("%d %d", &m, &n);
for(i=m;i<=n;i++)
{
x=i;
y=0;
while(x>0)
{ y=y*2+x%2;
x/=2;
}
if(y==i && x==0) printf("%d ",i); }
return 0;
}[/code:1]
jema (napisa): | jos nitko nije otvorio 32. zad. kako mi se cini, pa cu ja XD moj hint je ovaj: vrtim for od m do n, stavim x=m, zapisem m u bazi 2.sad za to ispitam je li palindrom i ako je, onda ispisem x...no sad, pitanje je sljedece...npr, opcenito napises program koji pretvara dekatski broj u binarni i sad upises 5, komp ispise 101. No, to nije broj 101, to je niz od 3 znamenke...e sad, jel mogu ja to ikako bez upotrebe niza pretvorit u broj 101...ako to mogu, onda bi znala rijesit zadatak na onaj gore opisan nacin.ako je moj hint skrooz kriv, molim nekog nek mi kaze kako da pravilno razmisljam o ovom zadatku ) hvala  |
evo moj kod,mislim da je točan:
Kod: | #include<stdio.h>
int main() {
int m,n,i,x,y;
scanf("%d %d", &m, &n);
for(i=m;i<=n;i++)
{
x=i;
y=0;
while(x>0)
{ y=y*2+x%2;
x/=2;
}
if(y==i && x==0) printf("%d ",i); }
return 0;
} |
|
|
[Vrh] |
|
BlameGame Forumaš(ica)

Pridružen/a: 14. 09. 2011. (19:17:53) Postovi: (6C)16
|
|
[Vrh] |
|
matematičarka Forumaš(ica)


Pridružen/a: 01. 10. 2011. (18:19:07) Postovi: (38)16
Lokacija: Planet Zemlja
|
Postano: 20:24 ned, 20. 11. 2011 Naslov: |
|
|
[quote="BlameGame"]Netko 23.?? pliz[/quote]
[code:1]
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int n, relprost, i, E=0, j;
scanf("%d", &n);
for(i=1;i<=n;++i)
{
relprost=1;
for(j=2;j<=i;++j)
{
if(n%j==0 && i%j==0)
{
relprost=0;
break;
}
}
if(relprost)
E++;
}
printf("%d", E);
return 0;
}
[/code:1]
BlameGame (napisa): | Netko 23.?? pliz |
Kod: |
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int n, relprost, i, E=0, j;
scanf("%d", &n);
for(i=1;i<=n;++i)
{
relprost=1;
for(j=2;j<=i;++j)
{
if(n%j==0 && i%j==0)
{
relprost=0;
break;
}
}
if(relprost)
E++;
}
printf("%d", E);
return 0;
}
|
_________________ Google is my best friend!
Coffee is my addiction! 
|
|
[Vrh] |
|
anamarie Forumaš(ica)

Pridružen/a: 07. 09. 2011. (10:59:19) Postovi: (87)16
Spol: 
|
Postano: 20:26 ned, 20. 11. 2011 Naslov: |
|
|
[quote="matkec"][quote="Vishykc"]A jel se može realizirati moja ideja s dosadašnjim poznavanjem obrađenog gradiva?[/quote]
Ja bi u tom slučaju koristio \r umjesto \b.
(naredba za vrećenje na početak reda).
\b nije logično koristiti jer obriše ono što pišeš.
Dakle, prvo bih prebrojao koliko će znamenaka imati zapis broja n u bazi b.
Zatim bih (ako npr ima 5 znamenaka) radio sljedeće:
>ispiši 4 prazna mjesta; (najlakše s malom for petljom)
>printf("%d\r", n%b);
>n/=b;
i sve to ubacio u petlju tako da ispisuješ sve manje i manje praznih mjesta.
Oprez: Kad izračunaš koliko n ima znamenaka u bazi b, n ćeš "uništiti". Spremi ga u neku pomoćnu varijablu da možeš s njime opet baratati.[/quote]
radila sam prema tvojim uputama,ali mi ne ispiše točno(npr.za 38,3 ispiše
1__2)
ne kužim gdje je greška,može pomoć??
moj kod:
[code:1]#include <stdio.h>
int main(void){
int n,b,n1,z,i,br=0;
printf("unesite cijeli broj n u bazi 10 i bazu b<=10:");
scanf("%d %d", &n, &b);
n1=n;
while (n>0){
z=n%b;
br++;
n/=b;
}
printf("%d\n",br);
for(i=1;i<br;i++) printf(" ");
while(n1>0){
printf("%d\r",n1%b);
n1/=b;
}
return 0;
}[/code:1]
matkec (napisa): | Vishykc (napisa): | A jel se može realizirati moja ideja s dosadašnjim poznavanjem obrađenog gradiva? |
Ja bi u tom slučaju koristio \r umjesto \b.
(naredba za vrećenje na početak reda).
\b nije logično koristiti jer obriše ono što pišeš.
Dakle, prvo bih prebrojao koliko će znamenaka imati zapis broja n u bazi b.
Zatim bih (ako npr ima 5 znamenaka) radio sljedeće:
>ispiši 4 prazna mjesta; (najlakše s malom for petljom)
>printf("%d\r", n%b);
>n/=b;
i sve to ubacio u petlju tako da ispisuješ sve manje i manje praznih mjesta.
Oprez: Kad izračunaš koliko n ima znamenaka u bazi b, n ćeš "uništiti". Spremi ga u neku pomoćnu varijablu da možeš s njime opet baratati. |
radila sam prema tvojim uputama,ali mi ne ispiše točno(npr.za 38,3 ispiše
1__2)
ne kužim gdje je greška,može pomoć??
moj kod:
Kod: | #include <stdio.h>
int main(void){
int n,b,n1,z,i,br=0;
printf("unesite cijeli broj n u bazi 10 i bazu b<=10:");
scanf("%d %d", &n, &b);
n1=n;
while (n>0){
z=n%b;
br++;
n/=b;
}
printf("%d\n",br);
for(i=1;i<br;i++) printf(" ");
while(n1>0){
printf("%d\r",n1%b);
n1/=b;
}
return 0;
} |
|
|
[Vrh] |
|
BlameGame Forumaš(ica)

Pridružen/a: 14. 09. 2011. (19:17:53) Postovi: (6C)16
|
|
[Vrh] |
|
matematičarka Forumaš(ica)


Pridružen/a: 01. 10. 2011. (18:19:07) Postovi: (38)16
Lokacija: Planet Zemlja
|
Postano: 20:53 ned, 20. 11. 2011 Naslov: |
|
|
[quote="jema"]jos nitko nije otvorio 32. zad. kako mi se cini, pa cu ja XD moj hint je ovaj: vrtim for od m do n, stavim x=m, zapisem m u bazi 2.sad za to ispitam je li palindrom i ako je, onda ispisem x...no sad, pitanje je sljedece...npr, opcenito napises program koji pretvara dekatski broj u binarni i sad upises 5, komp ispise 101. No, to nije broj 101, to je niz od 3 znamenke...e sad, jel mogu ja to ikako bez upotrebe niza pretvorit u broj 101...ako to mogu, onda bi znala rijesit zadatak na onaj gore opisan nacin.ako je moj hint skrooz kriv, molim nekog nek mi kaze kako da pravilno razmisljam o ovom zadatku :)) hvala :D[/quote]
[code:1]
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int a,b,c,max=1, palindrom=1, z1, z2;
scanf("%d", &a);
b=a;
c=b/2;
while(c>0)
{
max*=2;
c/=2;
}
while(max>0&&a>0)
{
z1=a%2;
z2=b/max;
if(z1!=z2)
{
palindrom=0;
break;
}
a/=2;
b=b-z2*max;
max/=2;
}
if(palindrom)
printf("Broj je binarni palindrom!");
else
printf("Broj nije binarni palindrom!");
return 0;
}
[/code:1]
Ovo to je moje rj. Testirala sam za 5(zadatak) i 73(Sheldon Cooper). Oni su binarni palindromi, a za one koji nisu palindromi mi isto radi.
jema (napisa): | jos nitko nije otvorio 32. zad. kako mi se cini, pa cu ja XD moj hint je ovaj: vrtim for od m do n, stavim x=m, zapisem m u bazi 2.sad za to ispitam je li palindrom i ako je, onda ispisem x...no sad, pitanje je sljedece...npr, opcenito napises program koji pretvara dekatski broj u binarni i sad upises 5, komp ispise 101. No, to nije broj 101, to je niz od 3 znamenke...e sad, jel mogu ja to ikako bez upotrebe niza pretvorit u broj 101...ako to mogu, onda bi znala rijesit zadatak na onaj gore opisan nacin.ako je moj hint skrooz kriv, molim nekog nek mi kaze kako da pravilno razmisljam o ovom zadatku ) hvala  |
Kod: |
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int a,b,c,max=1, palindrom=1, z1, z2;
scanf("%d", &a);
b=a;
c=b/2;
while(c>0)
{
max*=2;
c/=2;
}
while(max>0&&a>0)
{
z1=a%2;
z2=b/max;
if(z1!=z2)
{
palindrom=0;
break;
}
a/=2;
b=b-z2*max;
max/=2;
}
if(palindrom)
printf("Broj je binarni palindrom!");
else
printf("Broj nije binarni palindrom!");
return 0;
}
|
Ovo to je moje rj. Testirala sam za 5(zadatak) i 73(Sheldon Cooper). Oni su binarni palindromi, a za one koji nisu palindromi mi isto radi.
_________________ Google is my best friend!
Coffee is my addiction! 
|
|
[Vrh] |
|
BlameGame Forumaš(ica)

Pridružen/a: 14. 09. 2011. (19:17:53) Postovi: (6C)16
|
|
[Vrh] |
|
gflegar Forumaš(ica)


Pridružen/a: 12. 10. 2011. (15:03:41) Postovi: (10D)16
Spol: 
|
Postano: 22:29 ned, 20. 11. 2011 Naslov: |
|
|
[quote="Zenon"]
I imam još jedno pitanje za onaj zadatak gdje se treba zamijenici cijeli i decimalni dio tipa 12.3456 => 3456.12.
Moj kod:
[code:1]#include<stdio.h>
int main(void)
{
double x;
float dec1;
int cijeli,dec;
scanf("%lf",&x);
cijeli=(int)x;
dec1=(x-cijeli)*10000;
dec=(int)dec1;
while ( dec%10==0 && dec!=0 ) dec/=10;
printf("%d.%d", dec,cijeli);
return 0;
}
[/code:1]
I sad imam jedno pitanje.
Prvo sam radio bez float dec1 pa je jasno kako sam onda računao dec.
Zatim sam uveo prvo double dec1 i i dalje nije radilo, a kada sam stavio float dec1 sve radi.
S obzirom da je double zapravo long float, ne razumijem zašto mi nije radilo za double dec1, a za float dec1 radi?
Da nisam slučajno nabasao na riješenje, ne bih nikada došao razmišljanjem do njega, a sada kada sam i nabasao, ne razumijem :P
Bez dec1: 12.3456 => 3455.12
double dec1: 3455.12
float dec1: 3456.12
Hvala unaprijed.[/quote]
Mislim da si samo imao srece sa izborom tog broja pa ti radi za float a ne za double.
Cini mi se da se tu dogodilo ovo:
Najblizi predstavljivi broj tvojem broju u double-u je < 12.3456, tj 12.34559999...
dok je najblizi predstavljivi broj u float-u > 12.3456 tj. 12.3456000000 i nesto sitno.
Ako izaberes neki drugi broj mozda ce ti raditi za double a ne za float, a mozda ti nece raditi ni za jedno ni za drugo.
EDIT: Radi ti ovo :D Toliko si izmanipulirao te brojeve da ne postoji niti jedan realan broj < 10000 i s najvise 4 decimale za koji ovo ne bi radilo (ili ja imam bug u kodu)
Zenon (napisa): |
I imam još jedno pitanje za onaj zadatak gdje se treba zamijenici cijeli i decimalni dio tipa 12.3456 ⇒ 3456.12.
Moj kod:
Kod: | #include<stdio.h>
int main(void)
{
double x;
float dec1;
int cijeli,dec;
scanf("%lf",&x);
cijeli=(int)x;
dec1=(x-cijeli)*10000;
dec=(int)dec1;
while ( dec%10==0 && dec!=0 ) dec/=10;
printf("%d.%d", dec,cijeli);
return 0;
}
|
I sad imam jedno pitanje.
Prvo sam radio bez float dec1 pa je jasno kako sam onda računao dec.
Zatim sam uveo prvo double dec1 i i dalje nije radilo, a kada sam stavio float dec1 sve radi.
S obzirom da je double zapravo long float, ne razumijem zašto mi nije radilo za double dec1, a za float dec1 radi?
Da nisam slučajno nabasao na riješenje, ne bih nikada došao razmišljanjem do njega, a sada kada sam i nabasao, ne razumijem
Bez dec1: 12.3456 ⇒ 3455.12
double dec1: 3455.12
float dec1: 3456.12
Hvala unaprijed. |
Mislim da si samo imao srece sa izborom tog broja pa ti radi za float a ne za double.
Cini mi se da se tu dogodilo ovo:
Najblizi predstavljivi broj tvojem broju u double-u je < 12.3456, tj 12.34559999...
dok je najblizi predstavljivi broj u float-u > 12.3456 tj. 12.3456000000 i nesto sitno.
Ako izaberes neki drugi broj mozda ce ti raditi za double a ne za float, a mozda ti nece raditi ni za jedno ni za drugo.
EDIT: Radi ti ovo Toliko si izmanipulirao te brojeve da ne postoji niti jedan realan broj < 10000 i s najvise 4 decimale za koji ovo ne bi radilo (ili ja imam bug u kodu)
Zadnja promjena: gflegar; 23:01 ned, 20. 11. 2011; ukupno mijenjano 1 put.
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 22:34 ned, 20. 11. 2011 Naslov: |
|
|
[quote="BlameGame"]Zadatak 8.5.3. iz skripte:
Za zadani prirodan broj n ispisite sve njegove proste djelitelje tocno jednom.
dio rjesenja:
while(!(n % x) n /= x; (sto bih ja shvatila- dok nije istina da je n djeljiv sa x, dijeli ga s x????????)[/quote]
Podsjecam: [tt]while (x)[/tt] [tex]\Leftrightarrow[/tex] [tt]while (x != 0)[/tt]
Ako je [tt]n%x == 0[/tt], onda je [tt]!(n%x) == 1[/tt];
Ako je [tt]n%x != 0[/tt], onda je [tt]!(n%x) == 0[/tt].
Dakle, uvjet si shvatila tocno obrnuto, sto je i objasnjeno u napomeni 8.4.2.
BlameGame (napisa): | Zadatak 8.5.3. iz skripte:
Za zadani prirodan broj n ispisite sve njegove proste djelitelje tocno jednom.
dio rjesenja:
while(!(n % x) n /= x; (sto bih ja shvatila- dok nije istina da je n djeljiv sa x, dijeli ga s x????????) |
Podsjecam: while (x) [tex]\Leftrightarrow[/tex] while (x != 0)
Ako je n%x == 0, onda je !(n%x) == 1;
Ako je n%x != 0, onda je !(n%x) == 0.
Dakle, uvjet si shvatila tocno obrnuto, sto je i objasnjeno u napomeni 8.4.2.
_________________ 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] |
|
Silenoz Forumaš(ica)


Pridružen/a: 15. 10. 2011. (18:45:11) Postovi: (4F)16
Spol: 
|
Postano: 22:44 ned, 20. 11. 2011 Naslov: |
|
|
Bok, moze li netko molim vas provjeriti zasto moj kod za rjesenje 4. zadatka iz popisa ne izbacuje nista kao rjesenje:
[code:1]#include<stdio.h>
int m,n,k,j,i,zb,zb1,broj;
int main (void)
{
scanf("%d%d", &m, &n);
if (m<n)
{
k=m;
for (m;m<=n;m++)
zb=0;
for (i=1;i<=m/2;i++);
{
if (m%i==0) zb=zb+i;
}
broj==k;
do
{
zb1=0;
for (j=1;j<=broj/2;j++)
{
if (broj%j==0) zb1=zb1+j;
}
if (m==zb1&&broj==zb) printf("%d%d", m, broj);
broj++;
}
while (broj<=m);
}
else printf("----");
return 0;
}[/code:1]
Hvala unaprijed :)
Bok, moze li netko molim vas provjeriti zasto moj kod za rjesenje 4. zadatka iz popisa ne izbacuje nista kao rjesenje:
Kod: | #include<stdio.h>
int m,n,k,j,i,zb,zb1,broj;
int main (void)
{
scanf("%d%d", &m, &n);
if (m<n)
{
k=m;
for (m;m<=n;m++)
zb=0;
for (i=1;i<=m/2;i++);
{
if (m%i==0) zb=zb+i;
}
broj==k;
do
{
zb1=0;
for (j=1;j<=broj/2;j++)
{
if (broj%j==0) zb1=zb1+j;
}
if (m==zb1&&broj==zb) printf("%d%d", m, broj);
broj++;
}
while (broj<=m);
}
else printf("----");
return 0;
} |
Hvala unaprijed
|
|
[Vrh] |
|
gflegar Forumaš(ica)


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


Pridružen/a: 15. 10. 2011. (18:45:11) Postovi: (4F)16
Spol: 
|
|
[Vrh] |
|
Zenon Forumaš(ica)


Pridružen/a: 09. 09. 2011. (19:14:43) Postovi: (2B1)16
Sarma: -
Lokacija: [tex]\pm\infty[/tex]
|
|
[Vrh] |
|
boksi Forumaš(ica)

Pridružen/a: 02. 09. 2011. (16:37:55) Postovi: (44)16
Spol: 
|
Postano: 11:05 pon, 21. 11. 2011 Naslov: |
|
|
za parne radi normalno, neparni su problem; a ne znam kako da poopravim to. pomoooć :) pokušala sam nešto kraće, ali nije išlo.
[code:1]
/*Napiˇsite program koji uˇcitava prirodni broj n, te pomo´cu zvjezdica i razmaka “crta” ˇsahovsku ploˇcu dimenzije n*/
#include<stdio.h>
int main (void)
{
int n, z, k;
printf("Ucitajte prirodan broj: ");
scanf("%d", &n);
z=n/2;
if (n%2)k=n/2 +1 ;
else k=n/2;
while(k>0) {
if(n%2==0){
while(z>1) { printf("* "); z--; }
printf("*\n");
z=n/2;
while(z>1) {printf(" *"); z--; }
printf(" *\n");
z=n/2;
}
else {
while(z>1) { printf("* "); z--; }
printf("* *\n");
z=n/2 ;
while(z>1) {printf(" *"); z--; }
printf(" *\n");
z=n/2;
}
k--;
}
return 0;
}
[/code:1]
za parne radi normalno, neparni su problem; a ne znam kako da poopravim to. pomoooć pokušala sam nešto kraće, ali nije išlo.
Kod: |
/*Napiˇsite program koji uˇcitava prirodni broj n, te pomo´cu zvjezdica i razmaka “crta” ˇsahovsku ploˇcu dimenzije n*/
#include<stdio.h>
int main (void)
{
int n, z, k;
printf("Ucitajte prirodan broj: ");
scanf("%d", &n);
z=n/2;
if (n%2)k=n/2 +1 ;
else k=n/2;
while(k>0) {
if(n%2==0){
while(z>1) { printf("* "); z--; }
printf("*\n");
z=n/2;
while(z>1) {printf(" *"); z--; }
printf(" *\n");
z=n/2;
}
else {
while(z>1) { printf("* "); z--; }
printf("* *\n");
z=n/2 ;
while(z>1) {printf(" *"); z--; }
printf(" *\n");
z=n/2;
}
k--;
}
return 0;
}
|
|
|
[Vrh] |
|
lost_soul Forumaš(ica)

Pridružen/a: 18. 10. 2009. (17:38:41) Postovi: (133)16
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 12:12 pon, 21. 11. 2011 Naslov: |
|
|
@lost_soul: Zamijeni
[tt]for(i=1; i<=n; i++)[/tt]
s
[tt]for(i = 0; i < n; i++)[/tt]
(isto i za [tt]j[/tt]).
Ovdje je svejedno, ali patit cete se s nizovima ako si sada stvorite "krivu" naviku.
P.S. Ako nekog zanima, kraca varijanta ispisa, bez [tt]if[/tt], s uvjetnim operatorom:
[tt]printf("%c", (i+j) % 2 ? ' ' : '*');[/tt] ;)
@lost_soul: Zamijeni
for(i=1; i⇐n; i++)
s
for(i = 0; i < n; i++)
(isto i za j).
Ovdje je svejedno, ali patit cete se s nizovima ako si sada stvorite "krivu" naviku.
P.S. Ako nekog zanima, kraca varijanta ispisa, bez if, s uvjetnim operatorom:
printf("%c", (i+j) % 2 ? ' ' : '*');
_________________ 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] |
|
matematičarka Forumaš(ica)


Pridružen/a: 01. 10. 2011. (18:19:07) Postovi: (38)16
Lokacija: Planet Zemlja
|
Postano: 12:35 pon, 21. 11. 2011 Naslov: |
|
|
Da li je ovo prihvatljiv (prolazim na kolokviju) način rješavanja zadatka 41?
[code:1]
#include <stdio.h>
#include <stdio.h>
int main (void)
{
int cijeli, cijeli1=0, ncijeli, ncijeli1=0;
double x, decimalni, ndecimalni=0, nx;
scanf("%lg", &x);
cijeli=(int)(x);
decimalni = x-cijeli;
while(cijeli>0) //obrce cijeli dio od x
{
cijeli1=cijeli1*10+cijeli%10;
cijeli/=10;
}
ncijeli=(int)(decimalni*10000);
if(ncijeli>=1000)
{
while(ncijeli%10==0)//mice nule viska
ncijeli/=10;
while(ncijeli>0) //obrce bivse decimale
{
ncijeli1=ncijeli1*10+ncijeli%10;
ncijeli/=10;
}
}
else if (ncijeli<1000 && ncijeli>=100)
{
while(ncijeli%10==0)//mice nule viska
ncijeli/=10;
while(ncijeli>0) //obrce bivse decimale
{
ncijeli1=ncijeli1*10+ncijeli%10;
ncijeli/=10;
}
ncijeli1*=10;
}
else if(ncijeli<100 && ncijeli>=10)
{
while(ncijeli%10==0)//mice nule viska
ncijeli/=10;
while(ncijeli>0) //obrce bivse decimale
{
ncijeli1=ncijeli1*10+ncijeli%10;
ncijeli/=10;
}
ncijeli1*=100;
}
else
{
while(ncijeli%10==0)//mice nule viska
ncijeli/=10;
while(ncijeli>0) //obrce bivse decimale
{
ncijeli1=ncijeli1*10+ncijeli%10;
ncijeli/=10;
}
ncijeli1*=1000;
}
while(cijeli1>0)//pretvara obrnuto cijelo u decimalno
{
ndecimalni=ndecimalni*0.1+(double)(cijeli1%10)*0.1;
cijeli1/=10;
}
nx=ncijeli1+ndecimalni;
printf("%g", nx);
return 0;
}
[/code:1]
Odnosno zadatka 17?
[code:1]
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int cijeli, ncijeli;
double x, decimalni, ndecimalni=0, nx;
scanf("%lg", &x);
cijeli=(int)(x);
decimalni= x-cijeli;
ncijeli=(int)(decimalni*10000);
while(ncijeli%10==0)
ncijeli/=10;
while(cijeli>0)
{
ndecimalni=ndecimalni*0.1 + ((cijeli)%10)*0.1;
cijeli/=10;
}
nx=ncijeli+ndecimalni;
printf("%g", nx);
return 0;
}
[/code:1]
Da li je ovo prihvatljiv (prolazim na kolokviju) način rješavanja zadatka 41?
Kod: |
#include <stdio.h>
#include <stdio.h>
int main (void)
{
int cijeli, cijeli1=0, ncijeli, ncijeli1=0;
double x, decimalni, ndecimalni=0, nx;
scanf("%lg", &x);
cijeli=(int)(x);
decimalni = x-cijeli;
while(cijeli>0) //obrce cijeli dio od x
{
cijeli1=cijeli1*10+cijeli%10;
cijeli/=10;
}
ncijeli=(int)(decimalni*10000);
if(ncijeli>=1000)
{
while(ncijeli%10==0)//mice nule viska
ncijeli/=10;
while(ncijeli>0) //obrce bivse decimale
{
ncijeli1=ncijeli1*10+ncijeli%10;
ncijeli/=10;
}
}
else if (ncijeli<1000 && ncijeli>=100)
{
while(ncijeli%10==0)//mice nule viska
ncijeli/=10;
while(ncijeli>0) //obrce bivse decimale
{
ncijeli1=ncijeli1*10+ncijeli%10;
ncijeli/=10;
}
ncijeli1*=10;
}
else if(ncijeli<100 && ncijeli>=10)
{
while(ncijeli%10==0)//mice nule viska
ncijeli/=10;
while(ncijeli>0) //obrce bivse decimale
{
ncijeli1=ncijeli1*10+ncijeli%10;
ncijeli/=10;
}
ncijeli1*=100;
}
else
{
while(ncijeli%10==0)//mice nule viska
ncijeli/=10;
while(ncijeli>0) //obrce bivse decimale
{
ncijeli1=ncijeli1*10+ncijeli%10;
ncijeli/=10;
}
ncijeli1*=1000;
}
while(cijeli1>0)//pretvara obrnuto cijelo u decimalno
{
ndecimalni=ndecimalni*0.1+(double)(cijeli1%10)*0.1;
cijeli1/=10;
}
nx=ncijeli1+ndecimalni;
printf("%g", nx);
return 0;
}
|
Odnosno zadatka 17?
Kod: |
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int cijeli, ncijeli;
double x, decimalni, ndecimalni=0, nx;
scanf("%lg", &x);
cijeli=(int)(x);
decimalni= x-cijeli;
ncijeli=(int)(decimalni*10000);
while(ncijeli%10==0)
ncijeli/=10;
while(cijeli>0)
{
ndecimalni=ndecimalni*0.1 + ((cijeli)%10)*0.1;
cijeli/=10;
}
nx=ncijeli+ndecimalni;
printf("%g", nx);
return 0;
}
|
_________________ Google is my best friend!
Coffee is my addiction! 
|
|
[Vrh] |
|
vsego Site Admin


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