Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
indexnet Forumaš(ica)
Pridružen/a: 25. 11. 2008. (13:41:53) Postovi: (46)16
|
Postano: 17:04 pet, 20. 3. 2009 Naslov: |
|
|
ZADATAK: [i]Napišite program koji učitava prirodne brojeve dok ne učita nulu. Program treba ispisati produkt znamenaka u bazi 8, svih učitanih prostih brojeva.[/i]
program mi kad prvi puta upišem prost broj završava i uvijek mi ispisuje kao rezultat produkt jednako 1.
Molim pomoć jer nikako da skužim gdje sam pogrješio.
[code:1]
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, x, prod = 1, prost = 1, p;
do {
p = 2;
printf("upisite broj");
scanf("%d", &n);
while ( prost && p < n) {
if(!( n % p)) prost = 0;
p++;
}
if(prost) {
while (n > 0) {
x = n % 8;
prod *= x;
n /= 8;
}
}
} while( n );
printf("produk unesenih znamenaka je %d.\n", prod);
system("pause");
return 0;
}[/code:1]
ZADATAK: Napišite program koji učitava prirodne brojeve dok ne učita nulu. Program treba ispisati produkt znamenaka u bazi 8, svih učitanih prostih brojeva.
program mi kad prvi puta upišem prost broj završava i uvijek mi ispisuje kao rezultat produkt jednako 1.
Molim pomoć jer nikako da skužim gdje sam pogrješio.
Kod: |
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, x, prod = 1, prost = 1, p;
do {
p = 2;
printf("upisite broj");
scanf("%d", &n);
while ( prost && p < n) {
if(!( n % p)) prost = 0;
p++;
}
if(prost) {
while (n > 0) {
x = n % 8;
prod *= x;
n /= 8;
}
}
} while( n );
printf("produk unesenih znamenaka je %d.\n", prod);
system("pause");
return 0;
} |
|
|
[Vrh] |
|
Gino Forumaš(ica)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
Postano: 17:58 pet, 20. 3. 2009 Naslov: |
|
|
[quote="indexnet"]
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, x, prod = 1, prost = 1, p;
do {
p = 2;
printf("upisite broj");
scanf("%d", &n);
while ( prost && p < n) {
if(!( n % p)) prost = 0;
p++;
}
if(prost) {
while (n > 0) {
x = n % 8;
prod *= x;
n /= 8;
}
}
[b]prost=1; [/b]
} while( n );
printf("produk unesenih znamenaka je %d.\n", prod);
system("pause");
return 0;
}[/quote]
mislim da ono treba nadodat, neznam zasto ispisuje uvijek 1...
indexnet (napisa): |
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, x, prod = 1, prost = 1, p;
do {
p = 2;
printf("upisite broj");
scanf("%d", &n);
while ( prost && p < n) {
if(!( n % p)) prost = 0;
p++;
}
if(prost) {
while (n > 0) {
x = n % 8;
prod *= x;
n /= 8;
}
}
prost=1;
} while( n );
printf("produk unesenih znamenaka je %d.\n", prod);
system("pause");
return 0;
} |
mislim da ono treba nadodat, neznam zasto ispisuje uvijek 1...
_________________ Mario Berljafa
|
|
[Vrh] |
|
Luuka Forumaš(ica)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol:
Lokacija: Hakuna Matata
|
Postano: 18:06 pet, 20. 3. 2009 Naslov: |
|
|
Fali ti jedna pomoćna varijabla... naime, ako je n prost, onda će se vrtit ona druga while petlja, i tu (kad tražiš oktalne znamenke od n), n "ubiješ", tj dovedeš ga na nulu, pa se ubije i onaj glavni uvjet (do-while petlje)... dakle, kad učitaš n, onda napraviš recimo y=n i taj y cijepaš kasnije :)
Također, na početku do -while ti fali prost=1 da bi uopće ušlo u petlju za provjeru ako je prethodni bio složen :D
Fali ti jedna pomoćna varijabla... naime, ako je n prost, onda će se vrtit ona druga while petlja, i tu (kad tražiš oktalne znamenke od n), n "ubiješ", tj dovedeš ga na nulu, pa se ubije i onaj glavni uvjet (do-while petlje)... dakle, kad učitaš n, onda napraviš recimo y=n i taj y cijepaš kasnije
Također, na početku do -while ti fali prost=1 da bi uopće ušlo u petlju za provjeru ako je prethodni bio složen
_________________ "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
|
|
[Vrh] |
|
indexnet Forumaš(ica)
Pridružen/a: 25. 11. 2008. (13:41:53) Postovi: (46)16
|
|
[Vrh] |
|
Gino Forumaš(ica)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
|
[Vrh] |
|
indexnet Forumaš(ica)
Pridružen/a: 25. 11. 2008. (13:41:53) Postovi: (46)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 21:13 pet, 20. 3. 2009 Naslov: |
|
|
[quote="ddduuu"]Ako san ja dobro razumila... Drugi pokusaj prakticnog ispita je nakon prvog kolokvija?? Sta ne bi tribalo bit sva tri pokusaja prije prvog kolokvija????[/quote]
1. Zasto? :-k
2. Kad bi to stigli? :-k
[quote="ddduuu"]i da, kako inicijaliziram CIJELI niz da mi bude neki broj,.. no int b[10]={5};
kada stavim 0, onda mi inicijalizira niz na 0, a u slucaju 5 prvi clan stavi na 5 a ostale na 0:S[/quote]
Tocno kako smo vas i ucili da ce se dogoditi. :D Dakle, mozes u [tt]for()[/tt]-petlji, kako je Marko napisao, ili mozes pobrojati sve vrijednosti (ako ih ima dovoljno malo):
[tt]int b[10] = {5,5,5,5,5,5,5,5,5,5};[/tt]
ili
[tt]int b[] = {5,5,5,5,5,5,5,5,5,5};[/tt]
(duljina niza nije nuzna ako u inicijalizaciji imas onoliko elemenata kolika duljina treba biti). :)
Preporucam prouciti predavanja iz prvog semestra, tamo gdje se rade nizovi. :)
ddduuu (napisa): | Ako san ja dobro razumila... Drugi pokusaj prakticnog ispita je nakon prvog kolokvija?? Sta ne bi tribalo bit sva tri pokusaja prije prvog kolokvija???? |
1. Zasto?
2. Kad bi to stigli?
ddduuu (napisa): | i da, kako inicijaliziram CIJELI niz da mi bude neki broj,.. no int b[10]={5};
kada stavim 0, onda mi inicijalizira niz na 0, a u slucaju 5 prvi clan stavi na 5 a ostale na 0:S |
Tocno kako smo vas i ucili da ce se dogoditi. Dakle, mozes u for()-petlji, kako je Marko napisao, ili mozes pobrojati sve vrijednosti (ako ih ima dovoljno malo):
int b[10] = {5,5,5,5,5,5,5,5,5,5};
ili
int b[] = {5,5,5,5,5,5,5,5,5,5};
(duljina niza nije nuzna ako u inicijalizaciji imas onoliko elemenata kolika duljina treba biti).
Preporucam prouciti predavanja iz prvog semestra, tamo gdje se rade nizovi.
_________________ 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] |
|
ddduuu Forumaš(ica)
Pridružen/a: 16. 11. 2008. (12:31:48) Postovi: (109)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 22:59 pet, 20. 3. 2009 Naslov: |
|
|
Kao prvo, nista se ne pridruzi nasumicno, nego te u nizu zatekne smece koje je u memoriji bilo prije nego je tamo alociran prostor za niz (jer se varijable u C-u ne inicijaliziraju same od sebe). 8)
Kao drugo, rekoh da pogledas u predavanja. :? Ukratko, [tt]int x[17] = {4,5};[/tt] ([b]prema standardu[/b]) radi isto sto i
[code:1]int x[17];
x[0] = 4;
x[1] = 5;
{
int i;
for (i = 2; i < 17; ++i) x[i] = 0;
}[/code:1]
(ove dodatne viticaste zagrade su tu zato da se varijabla [tt]i[/tt] "ne vidi" izvana, jer kraca verzija ne uvodi nikakve dodatne varijable). 8)
Jos jednom, ne krpaj se ovako, nego prouci to u predavanjima, da naucis kako spada. :)
Kao prvo, nista se ne pridruzi nasumicno, nego te u nizu zatekne smece koje je u memoriji bilo prije nego je tamo alociran prostor za niz (jer se varijable u C-u ne inicijaliziraju same od sebe).
Kao drugo, rekoh da pogledas u predavanja. Ukratko, int x[17] = {4,5}; (prema standardu) radi isto sto i
Kod: | int x[17];
x[0] = 4;
x[1] = 5;
{
int i;
for (i = 2; i < 17; ++i) x[i] = 0;
} |
(ove dodatne viticaste zagrade su tu zato da se varijabla i "ne vidi" izvana, jer kraca verzija ne uvodi nikakve dodatne varijable).
Jos jednom, ne krpaj se ovako, nego prouci to u predavanjima, da naucis kako spada.
_________________ 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] |
|
whateveryouwant Forumaš(ica)
Pridružen/a: 02. 11. 2008. (18:27:38) Postovi: (2F)16
|
|
[Vrh] |
|
Spectre Forumaš(ica)
Pridružen/a: 02. 10. 2006. (16:58:05) Postovi: (167)16
Spol:
|
|
[Vrh] |
|
whateveryouwant Forumaš(ica)
Pridružen/a: 02. 11. 2008. (18:27:38) Postovi: (2F)16
|
|
[Vrh] |
|
m0rtus Forumaš(ica)
Pridružen/a: 20. 11. 2006. (20:30:00) Postovi: (30)16
Spol:
Lokacija: /root
|
|
[Vrh] |
|
Milojko Forumaš(ica)
Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol:
Lokacija: Hilbertov hotel
|
Postano: 13:42 ned, 22. 3. 2009 Naslov: |
|
|
pred vratima sobe prof Singera, mislim da je to i kabinet od prof Nogo, svejedno. ima tam desno od vrata popis sa terminima za prijavu. mislim da je to soba 225, al nisam siguran koji je točan broj. tam gore otiđi i upiši se, i to sve
pred vratima sobe prof Singera, mislim da je to i kabinet od prof Nogo, svejedno. ima tam desno od vrata popis sa terminima za prijavu. mislim da je to soba 225, al nisam siguran koji je točan broj. tam gore otiđi i upiši se, i to sve
_________________ Sedam je prost broj
Bolonja je smeće i to pod hitno treba mijenjat
|
|
[Vrh] |
|
m0rtus Forumaš(ica)
Pridružen/a: 20. 11. 2006. (20:30:00) Postovi: (30)16
Spol:
Lokacija: /root
|
Postano: 13:45 ned, 22. 3. 2009 Naslov: |
|
|
[quote="Milojko"]pred vratima sobe prof Singera, mislim da je to i kabinet od prof Nogo, svejedno. ima tam desno od vrata popis sa terminima za prijavu. mislim da je to soba 225, al nisam siguran koji je točan broj. tam gore otiđi i upiši se, i to sve[/quote]
kul, tnx!
Milojko (napisa): | pred vratima sobe prof Singera, mislim da je to i kabinet od prof Nogo, svejedno. ima tam desno od vrata popis sa terminima za prijavu. mislim da je to soba 225, al nisam siguran koji je točan broj. tam gore otiđi i upiši se, i to sve |
kul, tnx!
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
Lafiel Forumaš(ica)
Pridružen/a: 26. 09. 2007. (09:56:59) Postovi: (153)16
Spol:
|
Postano: 22:39 ned, 22. 3. 2009 Naslov: |
|
|
Osjećam se glupo ovo uopće pitati, ali može li mi netko bacit pogled na kod? Riječ je o [b]8. zadatku[/b], treba ispisati sve obilne brojeve manje od nekog k kojeg unesemo. Program mi se skompajlira ok, ali se sruši nakon što unesem broj k. :S
[code:1]int obilan(int n){
int s=0, j;
for (j=0; j<n; ++j){
if (!(n%j)) s=s+j;
}
if (n<s) return 1;
else return 0;
}
int main(){
int k,i;
printf("Unesi broj k: ");
scanf(" %d", &k);
for (i=2; i<k; ++i){
if (obilan(i)) printf(" %d", i);
}
}[/code:1]
Osjećam se glupo ovo uopće pitati, ali može li mi netko bacit pogled na kod? Riječ je o 8. zadatku, treba ispisati sve obilne brojeve manje od nekog k kojeg unesemo. Program mi se skompajlira ok, ali se sruši nakon što unesem broj k. :S
Kod: | int obilan(int n){
int s=0, j;
for (j=0; j<n; ++j){
if (!(n%j)) s=s+j;
}
if (n<s) return 1;
else return 0;
}
int main(){
int k,i;
printf("Unesi broj k: ");
scanf(" %d", &k);
for (i=2; i<k; ++i){
if (obilan(i)) printf(" %d", i);
}
} |
_________________ Weit von hier fällt Gold von den Sternen
|
|
[Vrh] |
|
Gino Forumaš(ica)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
|
[Vrh] |
|
Spectre Forumaš(ica)
Pridružen/a: 02. 10. 2006. (16:58:05) Postovi: (167)16
Spol:
|
|
[Vrh] |
|
Lafiel Forumaš(ica)
Pridružen/a: 26. 09. 2007. (09:56:59) Postovi: (153)16
Spol:
|
|
[Vrh] |
|
|