Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
jejo Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=1859&c=258)
![](images/avatars/725159442473f07cd91493.jpg)
Pridružen/a: 28. 11. 2006. (19:25:36) Postovi: (102)16
Spol: ![žensko žensko](images/gender/female.gif)
|
Postano: 22:10 pet, 24. 4. 2009 Naslov: zadaci za prvi kolokvij prog2 |
|
|
evo, rjesavam pomalo zadatke iz skripte pa me zanima ovaj zadatak:
Zadatak 3.10. Napisite program slican onom u prethodnom zadatku, ali umjesto horizontalne i vertikalne linije napravite “kriz” od linija paralelnih s glavnom i sporednom dijagonalom.
a taj prethodni zadatak je:
Zadatak 3.9. Napisite program koji ucitava cijele brojeve i, j E N0,
i, j < 10, te kreira i ispisuje tablicu m s 10 × 10 znakova koja na svim
mjestima ima tockice, osim na horizontalnoj i vertikalnoj liniji koje
prolaze elementom mi,j (na te linije treba staviti zvjezdice).
ja neznam kak bi trebao unos glasit za to..
moze neki mali hint ili nesto?
fala puno :)
evo, rjesavam pomalo zadatke iz skripte pa me zanima ovaj zadatak:
Zadatak 3.10. Napisite program slican onom u prethodnom zadatku, ali umjesto horizontalne i vertikalne linije napravite “kriz” od linija paralelnih s glavnom i sporednom dijagonalom.
a taj prethodni zadatak je:
Zadatak 3.9. Napisite program koji ucitava cijele brojeve i, j E N0,
i, j < 10, te kreira i ispisuje tablicu m s 10 × 10 znakova koja na svim
mjestima ima tockice, osim na horizontalnoj i vertikalnoj liniji koje
prolaze elementom mi,j (na te linije treba staviti zvjezdice).
ja neznam kak bi trebao unos glasit za to..
moze neki mali hint ili nesto?
fala puno
|
|
[Vrh] |
|
lucika Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=2583&c=303)
![](images/avatars/16685630664c1d4ee269528.jpg)
Pridružen/a: 22. 11. 2007. (17:52:27) Postovi: (12F)16
Spol: ![žensko žensko](images/gender/female.gif)
|
Postano: 22:28 pet, 24. 4. 2009 Naslov: |
|
|
[code:1]
#include <stdio.h>
int main( void )
{
int i, j, red, stup;
char tablica[ 10 ][ 10 ];
scanf( "%d%d", &i, &j );
for( red = 0; red < 10; ++red )
for( stup = 0; stup < 10; ++stup )
tablica[ red ][ stup ] = '.';
red = i; stup = 0;
while( red >= 0 )
{
tablica[ red ][ stup ] = '*';
--red; ++stup;
}
red = j; stup = 0;
while( red < 10 )
{
tablica[ red ][ stup ] = '*';
++red; ++stup;
}
for( red = 0; red < 10; ++red )
{
for( stup = 0; stup < 10; ++stup )
printf( "%c", tablica[ red ][ stup ] );
printf( "\n" );
}
return 0;
}
[/code:1]
Kod: |
#include <stdio.h>
int main( void )
{
int i, j, red, stup;
char tablica[ 10 ][ 10 ];
scanf( "%d%d", &i, &j );
for( red = 0; red < 10; ++red )
for( stup = 0; stup < 10; ++stup )
tablica[ red ][ stup ] = '.';
red = i; stup = 0;
while( red >= 0 )
{
tablica[ red ][ stup ] = '*';
--red; ++stup;
}
red = j; stup = 0;
while( red < 10 )
{
tablica[ red ][ stup ] = '*';
++red; ++stup;
}
for( red = 0; red < 10; ++red )
{
for( stup = 0; stup < 10; ++stup )
printf( "%c", tablica[ red ][ stup ] );
printf( "\n" );
}
return 0;
}
|
|
|
[Vrh] |
|
vsego Site Admin
![Site Admin Site Admin](dyck.php?id=2&c=13664&t=2)
![](images/avatars/3765282244f0c353486cd5.jpg)
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol: ![zombi zombi](images/gender/zombie.png)
Lokacija: /sbin/init
|
Postano: 22:44 pet, 24. 4. 2009 Naslov: |
|
|
@lucika: Cijenim trud, ali isprobaj program... meni (copy/paste) ne radi ispravno. :?
Unos je [tt]scanf("%d %d", &i, &j);[/tt]. 8)
Hint za rjesavanje: "zraku" od mjesta (i, j) prema gore lijevo slozis ovako:
[code:1]k = i; l = j;
while (k > 0 && l > 0) {
a[k][l] = '*';
--k;
--l;
}[/code:1]
Sad to ponovis cetiri puta (ili, bolje, upetljas u pametno slozen u petlju/petlje) i stvar je rijesena. 8)
Moze se to, naravno, i daleko bolje rijesiti, no mislim da vam je ovako lakse. :)
@lucika: Cijenim trud, ali isprobaj program... meni (copy/paste) ne radi ispravno.
Unos je scanf("%d %d", &i, &j);.
Hint za rjesavanje: "zraku" od mjesta (i, j) prema gore lijevo slozis ovako:
Kod: | k = i; l = j;
while (k > 0 && l > 0) {
a[k][l] = '*';
--k;
--l;
} |
Sad to ponovis cetiri puta (ili, bolje, upetljas u pametno slozen u petlju/petlje) i stvar je rijesena.
Moze se to, naravno, i daleko bolje rijesiti, no mislim da vam je ovako 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. ![Drzim prodike](images/smiles/gj_teach.gif)
|
|
[Vrh] |
|
Gino Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=3102&c=880)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
Postano: 23:15 pet, 24. 4. 2009 Naslov: |
|
|
neznam dal sam shvatio dobro zadatak...
al valjda je ovako nekako
[code:1]#include <stdio.h>
int main(void){
int i,j,k,l;
char m[10][10];
scanf("%d %d",&i,&j);
for(k=0;k<10;k++)
for(l=0;l<10;l++)
m[k][l]='.';
m[i][j]='*';
for(k=1;k<10;k++){
if(i-k>=0 && j+k<10)m[i-k][j+k]='*';
if(i-k<10 && j+k<10)m[i+k][j+k]='*';
if(i-k>=0 && j-k>=0)m[i-k][j-k]='*';
if(i+k<10 && j-k>=0)m[i+k][j-k]='*';
}
for(i=0;i<10;i++){
for(j=0;j<10;j++)
printf("%c",m[i][j]);
printf("\n");
}
system("pause");
return 0;
}[/code:1]
neznam dal sam shvatio dobro zadatak...
al valjda je ovako nekako
Kod: | #include <stdio.h>
int main(void){
int i,j,k,l;
char m[10][10];
scanf("%d %d",&i,&j);
for(k=0;k<10;k++)
for(l=0;l<10;l++)
m[k][l]='.';
m[i][j]='*';
for(k=1;k<10;k++){
if(i-k>=0 && j+k<10)m[i-k][j+k]='*';
if(i-k<10 && j+k<10)m[i+k][j+k]='*';
if(i-k>=0 && j-k>=0)m[i-k][j-k]='*';
if(i+k<10 && j-k>=0)m[i+k][j-k]='*';
}
for(i=0;i<10;i++){
for(j=0;j<10;j++)
printf("%c",m[i][j]);
printf("\n");
}
system("pause");
return 0;
} |
_________________ Mario Berljafa
|
|
[Vrh] |
|
Milojko Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=3216&c=1107)
![](images/avatars/20962720894c0a27a7baa87.jpg)
Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol: ![kućni ljubimac kućni ljubimac](images/gender/pet.gif)
Lokacija: Hilbertov hotel
|
Postano: 0:20 sub, 25. 4. 2009 Naslov: |
|
|
[code:1]#include <stdio.h>
int main() {
char a[10][10];
int i, j, k, l;
printf("Ukucaj i: "); scanf("%d", &i);
printf("Ukucaj j: "); scanf("%d", &j);
for (k = 0; k < 10; ++k) {
for (l = 0; l < 10; ++l) a[k][l] = '.';
}
for (k = 0; k < 10; ++k) {
if ((k+i) <= 10 && (9-k-j) >= 0){
a[k][k+i] = '*';
a[k][9-k-j] = '*';
}
}
for (k = 0; k < 10; ++k) {
for (l = 0; l < 10; ++l)
printf("%2c", a[k][l]);
printf("\n");
}
scanf("%%");
return 0;
}[/code:1]
mislim da valja.
[size=9][color=#999999]Added after 7 minutes:[/color][/size]
@Gino: [tt]stdlib[/tt] :p
e, a men nije posve jasno pitanje zadatka. jel to mora bit baš križ, il mora, npr, kad [tt]k+i[/tt] postane veći ili jednak od deset, a [tt]9-k-j[/tt] još nije spalo na nulu, dalje crtati zvjezdice u pravcu kak je počeo? mislim, pitanje je malo glupo formulirano, al, probajte pokrenti. moj ga nacrta dok može crtat križ, Ginov je ova druga verzija, čini mi se
Kod: | #include <stdio.h>
int main() {
char a[10][10];
int i, j, k, l;
printf("Ukucaj i: "); scanf("%d", &i);
printf("Ukucaj j: "); scanf("%d", &j);
for (k = 0; k < 10; ++k) {
for (l = 0; l < 10; ++l) a[k][l] = '.';
}
for (k = 0; k < 10; ++k) {
if ((k+i) <= 10 && (9-k-j) >= 0){
a[k][k+i] = '*';
a[k][9-k-j] = '*';
}
}
for (k = 0; k < 10; ++k) {
for (l = 0; l < 10; ++l)
printf("%2c", a[k][l]);
printf("\n");
}
scanf("%%");
return 0;
} |
mislim da valja.
Added after 7 minutes:
@Gino: stdlib :p
e, a men nije posve jasno pitanje zadatka. jel to mora bit baš križ, il mora, npr, kad k+i postane veći ili jednak od deset, a 9-k-j još nije spalo na nulu, dalje crtati zvjezdice u pravcu kak je počeo? mislim, pitanje je malo glupo formulirano, al, probajte pokrenti. moj ga nacrta dok može crtat križ, Ginov je ova druga verzija, čini mi se
_________________ Sedam je prost broj
Bolonja je smeće i to pod hitno treba mijenjat
|
|
[Vrh] |
|
vsego Site Admin
![Site Admin Site Admin](dyck.php?id=2&c=13664&t=2)
![](images/avatars/3765282244f0c353486cd5.jpg)
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol: ![zombi zombi](images/gender/zombie.png)
Lokacija: /sbin/init
|
Postano: 1:52 sub, 25. 4. 2009 Naslov: |
|
|
Ovo sto je Gino napravio, meni padne sa "segementation fault" za i = 5, j = 2. :? Za i = 2, j = 5 radi dobro. :)
Ovo od Milojka niti za jedan od ta dva primjera ne radi dobro. :(
Evo vam program koji radi, da mozete usporedjivati:
[code:1]#include <stdio.h>
int main() {
char a[10][10];
int i, j, k, l, smjer;
scanf("%d %d", &i, &j);
for (k = 0; k < 10; ++k)
for (l = 0; l < 10; ++l)
a[k][l] = '.';
for (smjer = 0; smjer < 4; ++smjer) {
k = i;
l = j;
while (k >= 0 && l >= 0 && k < 10 && l < 10) {
a[k][l] = '*';
k += 1 - 2 * (smjer / 2);
l += 1 - 2 * (smjer % 2);
}
}
for (k = 0; k < 10; ++k) {
for (l = 0; l < 10; ++l)
printf("%c", a[k][l]);
printf("\n");
}
return 0;
}[/code:1]
Isprobah za navedene primjere, no solidno sam uvjeren da je i inace dobar. :)
Da objasnim eskapadu sa smjerom: varijabla [tt]smjer[/tt] poprima vrijednosti 0, 1, 2, 3; binarno, to je 00, 01, 10 i 11, pa kad gledamo izraze [tt]smjer / 2[/tt] i [tt]smjer % 2[/tt] dobijemo sva cetiri uredjena para nula i jedinica, a od toga onda dobijamo sve moguce parove -1 i +1:
[table][tt]smjer[/tt] [tt]smjer / 2[/tt] [tt]smjer % 2[/tt] [tt]2 * (smjer / 2)[/tt] [tt]2 * (smjer % 2)[/tt] [tt]1 - 2 * (smjer / 2)[/tt] [tt]1 - 2 * (smjer % 2)[/tt]
0 0 0 0 0 1 1
1 1 0 2 0 -1 1
2 0 1 0 2 1 -1
3 1 1 2 2 -1 -1[/table]
Kao sto gore rekoh, ovo je simpaticno, ali i nepotrebno... moze se jednostavno [tt]while()[/tt] petlju napisati 4 puta, varirajuci [tt]++[/tt] i [tt]--[/tt], te uvjete u petlji. 8)
Inace, ako se sjetite price o glavnoj i sporednoj dijagonali (kod prve je [tt]k - l[/tt] konstantan, a kod druge je to [tt]k + l[/tt]), program mozete i ovako napisati:
[code:1]#include <stdio.h>
int main() {
char a[10][10];
int i, j, k, l;
scanf("%d %d", &i, &j);
for (k = 0; k < 10; ++k)
for (l = 0; l < 10; ++l)
a[k][l] = (k + l == i + j || k - l == i - j ? '*' : '.');
for (k = 0; k < 10; ++k) {
for (l = 0; l < 10; ++l)
printf("%c", a[k][l]);
printf("\n");
}
return 0;
}[/code:1]
Naravno, matrica vise uopce nije potrebna (no, treba ju sloziti jer to zadatak trazi!) i ispis bi se mogao i direktno napraviti. :D
Ovo sto je Gino napravio, meni padne sa "segementation fault" za i = 5, j = 2. Za i = 2, j = 5 radi dobro.
Ovo od Milojka niti za jedan od ta dva primjera ne radi dobro.
Evo vam program koji radi, da mozete usporedjivati:
Kod: | #include <stdio.h>
int main() {
char a[10][10];
int i, j, k, l, smjer;
scanf("%d %d", &i, &j);
for (k = 0; k < 10; ++k)
for (l = 0; l < 10; ++l)
a[k][l] = '.';
for (smjer = 0; smjer < 4; ++smjer) {
k = i;
l = j;
while (k >= 0 && l >= 0 && k < 10 && l < 10) {
a[k][l] = '*';
k += 1 - 2 * (smjer / 2);
l += 1 - 2 * (smjer % 2);
}
}
for (k = 0; k < 10; ++k) {
for (l = 0; l < 10; ++l)
printf("%c", a[k][l]);
printf("\n");
}
return 0;
} |
Isprobah za navedene primjere, no solidno sam uvjeren da je i inace dobar.
Da objasnim eskapadu sa smjerom: varijabla smjer poprima vrijednosti 0, 1, 2, 3; binarno, to je 00, 01, 10 i 11, pa kad gledamo izraze smjer / 2 i smjer % 2 dobijemo sva cetiri uredjena para nula i jedinica, a od toga onda dobijamo sve moguce parove -1 i +1:
smjer | smjer / 2 | smjer % 2 | 2 * (smjer / 2) | 2 * (smjer % 2) | 1 - 2 * (smjer / 2) | 1 - 2 * (smjer % 2) |
---|
0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 2 | 0 | -1 | 1 | 2 | 0 | 1 | 0 | 2 | 1 | -1 | 3 | 1 | 1 | 2 | 2 | -1 | -1 |
Kao sto gore rekoh, ovo je simpaticno, ali i nepotrebno... moze se jednostavno while() petlju napisati 4 puta, varirajuci ++ i –, te uvjete u petlji.
Inace, ako se sjetite price o glavnoj i sporednoj dijagonali (kod prve je k - l konstantan, a kod druge je to k + l), program mozete i ovako napisati:
Kod: | #include <stdio.h>
int main() {
char a[10][10];
int i, j, k, l;
scanf("%d %d", &i, &j);
for (k = 0; k < 10; ++k)
for (l = 0; l < 10; ++l)
a[k][l] = (k + l == i + j || k - l == i - j ? '*' : '.');
for (k = 0; k < 10; ++k) {
for (l = 0; l < 10; ++l)
printf("%c", a[k][l]);
printf("\n");
}
return 0;
} |
Naravno, matrica vise uopce nije potrebna (no, treba ju sloziti jer to zadatak trazi!) i ispis bi se mogao i direktno napraviti.
_________________ 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. ![Drzim prodike](images/smiles/gj_teach.gif)
|
|
[Vrh] |
|
Gino Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=3102&c=880)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
|
[Vrh] |
|
Bubba Forumaš s poteškoćama u pisanju
![Forumaš s poteškoćama u pisanju Forumaš s poteškoćama u pisanju](dyck.php?id=1823&c=83&b=1)
![](images/avatars/2097501254455dede56b6e7.gif)
Pridružen/a: 17. 11. 2006. (18:09:12) Postovi: (53)16
Spol: ![muško muško](images/gender/male.gif)
|
Postano: 10:51 sub, 25. 4. 2009 Naslov: |
|
|
[quote="vsego"]Ovo sto je Gino napravio, meni padne sa "segementation fault" za i = 5, j = 2. :? Za i = 2, j = 5 radi dobro. :)[/quote][code:1] for(k=1;k<10;++k){
if(i-k>=0 && j+k<10)
m[i-k][j+k]='*';
if(i-k<10 && j+k<10)
m[i+k][j+k]='*';
if(i-k>=0 && j-k>=0)
m[i-k][j-k]='*';
if(i+k<10 && j-k>=0)
m[i+k][j-k]='*';
}[/code:1]Kada je I = 5 a j = 2 te k > 5, jasno je zasto dolazi do [i]segmentation faulta[/i] (drugi [i]if[/i]) - pristupa se nealociranom dijelu dvodimenzionalnog polja.
@gino - Koristi malloc(); ili dovoljno veliku konstantu pri deklariranju polja. Ovo su ozbiljne greske u C na relativno trivijalnom primjeru; pripazi na njih...
Takodjer, imaj na umu da system(); funkcija obicno znaci neportabilnost, a u ovom slucaju ti je bespotrebna. Ako vec nemozes bez nje, napravi nesto ovako:
[code:1] #ifdef _WIN32
system ("pause");
#endif[/code:1]
pa ce se tvoj kod bez problema kompajlirati i na newindows platformama.
vsego (napisa): | Ovo sto je Gino napravio, meni padne sa "segementation fault" za i = 5, j = 2. Za i = 2, j = 5 radi dobro. ![Smile](images/smiles/icon_smile.gif) |
Kod: | for(k=1;k<10;++k){
if(i-k>=0 && j+k<10)
m[i-k][j+k]='*';
if(i-k<10 && j+k<10)
m[i+k][j+k]='*';
if(i-k>=0 && j-k>=0)
m[i-k][j-k]='*';
if(i+k<10 && j-k>=0)
m[i+k][j-k]='*';
} | Kada je I = 5 a j = 2 te k > 5, jasno je zasto dolazi do segmentation faulta (drugi if) - pristupa se nealociranom dijelu dvodimenzionalnog polja.
@gino - Koristi malloc(); ili dovoljno veliku konstantu pri deklariranju polja. Ovo su ozbiljne greske u C na relativno trivijalnom primjeru; pripazi na njih...
Takodjer, imaj na umu da system(); funkcija obicno znaci neportabilnost, a u ovom slucaju ti je bespotrebna. Ako vec nemozes bez nje, napravi nesto ovako:
Kod: | #ifdef _WIN32
system ("pause");
#endif |
pa ce se tvoj kod bez problema kompajlirati i na newindows platformama.
_________________ Biolozi misle da su kemičari. Kemičari misle da su fizičari. Fizičari misle da su bogovi. A Bog misli da je matematičar...
§ http://math2.ath.cx §
|
|
[Vrh] |
|
Gino Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=3102&c=880)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
|
[Vrh] |
|
moi Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=2069&c=38)
Pridružen/a: 21. 02. 2007. (13:39:09) Postovi: (26)16
Spol: ![žensko žensko](images/gender/female.gif)
|
Postano: 17:58 pon, 27. 4. 2009 Naslov: |
|
|
[code:1]#include<stdio.h>
#include<stdlib.h>
int f(int x){
int i,b,br=0;
if (x<0) return f(-x);
for(i=2;i<10;i++){
while(x){
b=x%i;
x=x/i;
br++;
}
if(br==2)
return i;
}
if(x==0)return 0;
return f(x/5);
}
int main(){
int n;
printf("n=\n");
scanf("%d", &n);
printf("Poziv fje je %d\n",f(n));
system("pause");
return 0;
}
[/code:1]
Može li mi netko objasniti zašto ovaj program ne radi dobro, odnosno ispisuje "Poziv fje je 0 " za svaki broj koji unesem. To je 1. zadatak sa popravnog kolokvija od prošle godine.
Kod: | #include<stdio.h>
#include<stdlib.h>
int f(int x){
int i,b,br=0;
if (x<0) return f(-x);
for(i=2;i<10;i++){
while(x){
b=x%i;
x=x/i;
br++;
}
if(br==2)
return i;
}
if(x==0)return 0;
return f(x/5);
}
int main(){
int n;
printf("n=\n");
scanf("%d", &n);
printf("Poziv fje je %d\n",f(n));
system("pause");
return 0;
}
|
Može li mi netko objasniti zašto ovaj program ne radi dobro, odnosno ispisuje "Poziv fje je 0 " za svaki broj koji unesem. To je 1. zadatak sa popravnog kolokvija od prošle godine.
|
|
[Vrh] |
|
Luuka Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=2041&c=2341)
![](images/avatars/7081767854d2efa77dc28b.jpg)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol: ![muško muško](images/gender/male.gif)
Lokacija: Hakuna Matata
|
Postano: 18:05 pon, 27. 4. 2009 Naslov: |
|
|
Pretpostavljam da ti gornja fja pocijepa x do te mjere da je x<5. I onda imaš cjelobrojno dijeljenje ( x/5 ) koje u tom slučaju vrati 0... a što bi program trebao radit?
Pretpostavljam da ti gornja fja pocijepa x do te mjere da je x<5. I onda imaš cjelobrojno dijeljenje ( x/5 ) koje u tom slučaju vrati 0... a što bi program trebao radit?
_________________ "Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy ![Very Happy](images/smiles/icon_biggrin.gif)
|
|
[Vrh] |
|
moi Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=2069&c=38)
Pridružen/a: 21. 02. 2007. (13:39:09) Postovi: (26)16
Spol: ![žensko žensko](images/gender/female.gif)
|
|
[Vrh] |
|
Luuka Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=2041&c=2341)
![](images/avatars/7081767854d2efa77dc28b.jpg)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol: ![muško muško](images/gender/male.gif)
Lokacija: Hakuna Matata
|
Postano: 18:32 pon, 27. 4. 2009 Naslov: |
|
|
[code:1]#include<stdio.h>
#include<stdlib.h>
int f(int x)
{
int i,br=0,temp;
if (x<0) return f(-x);
if(x==0)return 0;
for(i=2;i<10;i++)
{
temp=x;
br=0;
while(temp){
temp/=i;
br++;
}
if(br==2)
return i;
}
return f(x/5);
}
int main(){
int n;
printf("n= ");
scanf("%d", &n);
printf("Poziv fje je %d\n",f(n));
system("pause");
return 0;
} [/code:1]
Ovo bi trebalo bit bolje... dakle greška ti je bila što si cijepala x, pa ti za iduću bazu ostao na nuli... i nisi brojač stavila na nulu za svaku bazu... i uvjet x==0 je najbolje provjerit odmah, jer ovo kasnije je suvišno za taj slučaj... sad je valjda to to... :D
Kod: | #include<stdio.h>
#include<stdlib.h>
int f(int x)
{
int i,br=0,temp;
if (x<0) return f(-x);
if(x==0)return 0;
for(i=2;i<10;i++)
{
temp=x;
br=0;
while(temp){
temp/=i;
br++;
}
if(br==2)
return i;
}
return f(x/5);
}
int main(){
int n;
printf("n= ");
scanf("%d", &n);
printf("Poziv fje je %d\n",f(n));
system("pause");
return 0;
} |
Ovo bi trebalo bit bolje... dakle greška ti je bila što si cijepala x, pa ti za iduću bazu ostao na nuli... i nisi brojač stavila na nulu za svaku bazu... i uvjet x==0 je najbolje provjerit odmah, jer ovo kasnije je suvišno za taj slučaj... sad je valjda to to...
_________________ "Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy ![Very Happy](images/smiles/icon_biggrin.gif)
|
|
[Vrh] |
|
moi Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=2069&c=38)
Pridružen/a: 21. 02. 2007. (13:39:09) Postovi: (26)16
Spol: ![žensko žensko](images/gender/female.gif)
|
|
[Vrh] |
|
vsego Site Admin
![Site Admin Site Admin](dyck.php?id=2&c=13664&t=2)
![](images/avatars/3765282244f0c353486cd5.jpg)
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol: ![zombi zombi](images/gender/zombie.png)
Lokacija: /sbin/init
|
|
[Vrh] |
|
Luuka Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=2041&c=2341)
![](images/avatars/7081767854d2efa77dc28b.jpg)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol: ![muško muško](images/gender/male.gif)
Lokacija: Hakuna Matata
|
|
[Vrh] |
|
Gino Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=3102&c=880)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
|
[Vrh] |
|
vsego Site Admin
![Site Admin Site Admin](dyck.php?id=2&c=13664&t=2)
![](images/avatars/3765282244f0c353486cd5.jpg)
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol: ![zombi zombi](images/gender/zombie.png)
Lokacija: /sbin/init
|
|
[Vrh] |
|
Gino Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=3102&c=880)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
|
[Vrh] |
|
lucika Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=2583&c=303)
![](images/avatars/16685630664c1d4ee269528.jpg)
Pridružen/a: 22. 11. 2007. (17:52:27) Postovi: (12F)16
Spol: ![žensko žensko](images/gender/female.gif)
|
Postano: 13:15 uto, 28. 4. 2009 Naslov: |
|
|
Zadatak 2.5 (pismeni ispit, 28.11.2005). Napišite rekurzivnu funk-
ciju koja uzima barem jedan argument x ∈ N. Funkcija treba vratiti broj
na koliko različitih načina se x može prikazati kao suma brojeva 2, 3 i
5, neovisno o redoslijedu sumanada (tj. 2 + 3 + 3 je isto što i 3 + 2 + 3
i 3 + 3 + 2, pa se to broji samo kao jedan način).
i sad, u 4.liniji koda piše:
i f ( x == 0) return 1 ;
zašto???jel to znači da se 0 može na jedan način prikazati kao suma brojeva 2, 3 i 5 :?:
Zadatak 2.5 (pismeni ispit, 28.11.2005). Napišite rekurzivnu funk-
ciju koja uzima barem jedan argument x ∈ N. Funkcija treba vratiti broj
na koliko različitih načina se x može prikazati kao suma brojeva 2, 3 i
5, neovisno o redoslijedu sumanada (tj. 2 + 3 + 3 je isto što i 3 + 2 + 3
i 3 + 3 + 2, pa se to broji samo kao jedan način).
i sad, u 4.liniji koda piše:
i f ( x == 0) return 1 ;
zašto???jel to znači da se 0 može na jedan način prikazati kao suma brojeva 2, 3 i 5
|
|
[Vrh] |
|
|