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
|
Postano: 3:40 uto, 15. 11. 2011 Naslov: |
|
|
Bez da trazim koji je to zadatak (mozda nije naodmet prouciti [url=http://degiorgi.math.hr/forum/viewtopic.php?t=17017]upute za preglednije pisanje poruka[/url]), primjecujem da jako volis
[code:1]for (i = a; i <= b; ++i)
if (i == a || i == b) nesto;
else ...[/code:1]
U tvom slucaju, bitno je lakse:
[code:1]nesto;
for (i = a+1; i < b; ++i)
...
nesto;[/code:1]
Pogotovo ako [tt]while()[/tt] u prvoj petlji zamijenis s jednolinijskim [tt]for(j = 0; j < n; ++j) printf("*");[/tt].
Inace, preporucam petlje setati od [tt]varijabla = 0[/tt] do [tt]varijabla < n[/tt], umjesto [tt]varijabla = 1[/tt] do [tt]varijabla <= n[/tt]. Razlog je taj da se nizovi (i matrice) indexiraju od nule, pa ce vam kasnije biti teze ako se naviknete kretati od jedinice.
Bez da trazim koji je to zadatak (mozda nije naodmet prouciti upute za preglednije pisanje poruka), primjecujem da jako volis
Kod: | for (i = a; i <= b; ++i)
if (i == a || i == b) nesto;
else ... |
U tvom slucaju, bitno je lakse:
Kod: | nesto;
for (i = a+1; i < b; ++i)
...
nesto; |
Pogotovo ako while() u prvoj petlji zamijenis s jednolinijskim for(j = 0; j < n; ++j) printf("*");.
Inace, preporucam petlje setati od varijabla = 0 do varijabla < n, umjesto varijabla = 1 do varijabla ⇐ n. Razlog je taj da se nizovi (i matrice) indexiraju od nule, pa ce vam kasnije biti teze ako se naviknete kretati od jedinice.
_________________ 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] |
|
Zenon Forumaš(ica)
Pridružen/a: 09. 09. 2011. (19:14:43) Postovi: (2B1)16
Sarma: -
Lokacija: [tex]\pm\infty[/tex]
|
Postano: 4:46 uto, 15. 11. 2011 Naslov: |
|
|
Evo editirao sam post i stavio tekst zadatka, sorry.
Vidio sam istu opasku i u skripti. Tako smo mi i u srednjoj dok smo radili. U ovom primjeru sam namjerno uzeo tako jer mi je ovo programiranje teško, a broj redka je prirodan broj, pa me dodatno "opterećuje" pamćenje/razmišljanje u kojem sam točno retku, ovako krećem od broja 1 pa znam da sam u prvom redu, tako si lakše predočim zadatak. Možda ću moći i na to misliti kada se malo izvježbam i neke mi stvari postanu lakše i više rutinski :)
Ako se sa tekstom zadatka Vaš komentar mijenja (dio koji se ne odnosi na gornju raspravu), molio bih da komentirate što to, a ako ne odgovorite ništa, smatrat ću da se ništa ne mijenja i ne dodaje.
U svakom slučaju hvala.
Evo editirao sam post i stavio tekst zadatka, sorry.
Vidio sam istu opasku i u skripti. Tako smo mi i u srednjoj dok smo radili. U ovom primjeru sam namjerno uzeo tako jer mi je ovo programiranje teško, a broj redka je prirodan broj, pa me dodatno "opterećuje" pamćenje/razmišljanje u kojem sam točno retku, ovako krećem od broja 1 pa znam da sam u prvom redu, tako si lakše predočim zadatak. Možda ću moći i na to misliti kada se malo izvježbam i neke mi stvari postanu lakše i više rutinski
Ako se sa tekstom zadatka Vaš komentar mijenja (dio koji se ne odnosi na gornju raspravu), molio bih da komentirate što to, a ako ne odgovorite ništa, smatrat ću da se ništa ne mijenja i ne dodaje.
U svakom slučaju hvala.
|
|
[Vrh] |
|
Zenon Forumaš(ica)
Pridružen/a: 09. 09. 2011. (19:14:43) Postovi: (2B1)16
Sarma: -
Lokacija: [tex]\pm\infty[/tex]
|
Postano: 4:56 uto, 15. 11. 2011 Naslov: 4. zadatak, praktični kolokvij |
|
|
[b]Zadatak[/b]:
Kažemo da su prirodni brojevi a i b prijateljski ako je zbroj svih djelitelja broja a strogo manjih od broja a jednak broju b,
a zbroj svih djelitelja broja b strogo manjih od b jednak broju a.
Napišite program koji učitava dva prirodna broja m i n, m < n, i ispisuje sve parove prijateljskih brojeva (a, b) takvih da je
m<=a, b<=n. Svaki par treba ispisati točno jednom.
Evo ga, riješio sam i to, uz puno muke u ovo doba :D
Sada me zanima je li mi točan? Imam osjećaj, iako mi izbaci točno riješenje za primjer iz samog zadatka, tj. za m=100 i n=300 => a=220,b=284, da mi zadatak nije skroz točan. Prvo mi je ispisivao za zadani primjer (220,284) i (284,220) pa sam i to riješio i evo što sam dobio:
[code:1]#include<stdio.h>
int main(void)
{
int m,n,a,b,djeljitelj=1,zbroja=0,zbrojb=0;
scanf("%d %d",&m,&n);
for(a=m;a<=n;a++)
{
while(djeljitelj<a)
{
if(a%djeljitelj==0) zbroja+=djeljitelj;
djeljitelj++;
}
djeljitelj=1;
if (zbroja>=m && zbroja<=n)
{
b=zbroja;
while(djeljitelj<b)
{
if(b%djeljitelj==0) zbrojb+=djeljitelj;
djeljitelj++;
}
if (zbrojb==a && a<b) printf("(%d,%d)",a,b);
djeljitelj=1;
}
zbroja=zbrojb=0;
}
return 0;
}
[/code:1]
Zadatak:
Kažemo da su prirodni brojevi a i b prijateljski ako je zbroj svih djelitelja broja a strogo manjih od broja a jednak broju b,
a zbroj svih djelitelja broja b strogo manjih od b jednak broju a.
Napišite program koji učitava dva prirodna broja m i n, m < n, i ispisuje sve parove prijateljskih brojeva (a, b) takvih da je
m⇐a, b⇐n. Svaki par treba ispisati točno jednom.
Evo ga, riješio sam i to, uz puno muke u ovo doba
Sada me zanima je li mi točan? Imam osjećaj, iako mi izbaci točno riješenje za primjer iz samog zadatka, tj. za m=100 i n=300 ⇒ a=220,b=284, da mi zadatak nije skroz točan. Prvo mi je ispisivao za zadani primjer (220,284) i (284,220) pa sam i to riješio i evo što sam dobio:
Kod: | #include<stdio.h>
int main(void)
{
int m,n,a,b,djeljitelj=1,zbroja=0,zbrojb=0;
scanf("%d %d",&m,&n);
for(a=m;a<=n;a++)
{
while(djeljitelj<a)
{
if(a%djeljitelj==0) zbroja+=djeljitelj;
djeljitelj++;
}
djeljitelj=1;
if (zbroja>=m && zbroja<=n)
{
b=zbroja;
while(djeljitelj<b)
{
if(b%djeljitelj==0) zbrojb+=djeljitelj;
djeljitelj++;
}
if (zbrojb==a && a<b) printf("(%d,%d)",a,b);
djeljitelj=1;
}
zbroja=zbrojb=0;
}
return 0;
}
|
|
|
[Vrh] |
|
Zenon Forumaš(ica)
Pridružen/a: 09. 09. 2011. (19:14:43) Postovi: (2B1)16
Sarma: -
Lokacija: [tex]\pm\infty[/tex]
|
Postano: 5:25 uto, 15. 11. 2011 Naslov: 5. zadatak, praktični kolokvij |
|
|
[b]Zadatak[/b]:
Napišite program koji učitava cijele brojeve b (b<=10) i n, a zatim n brojeva koji predstavljaju znamenke nekog broja u bazi
b. Program treba ispisati o kojem dekadskom broju se radi.
Molim pomoć: kako to postići (ako je moguće) bez math.h, a da nije "glupo", tj. da se silom izbaci math.h, a onda bez veze zakomplicira.
Usput, provjera moga :)
Unaprijed hvala!
I ako je problem što ja otvaram za svaki zadatak novu temu, meni je svejedno ako, nakon što sve razrješimo, temu obrišete.
Iako mislim da je ovako preglednije za sve, jer u temi "praktični kolokvij" već ima 4 stranice i sve je zbrda zdola, a meni internet jako jako spor i dok se snađem i dok se sve učita treba puno vremena. Ovako mi je jednostavnije, pa zato.
[code:1]#include<stdio.h>
#include<math.h>
int main(void)
{
int b,n,x,i,zbroj=0;
scanf("%d %d",&b,&n);
if (b>1 && b<=10)
{
for (i=0;i<n;i++)
{
scanf("%d",&x);
if (x>=0 && x<b)
{
zbroj+=x*(pow(b,n-i-1));
}
}
printf("Dekadski zapis je %d",zbroj);
}
return 0;
}
[/code:1]
Zadatak:
Napišite program koji učitava cijele brojeve b (b⇐10) i n, a zatim n brojeva koji predstavljaju znamenke nekog broja u bazi
b. Program treba ispisati o kojem dekadskom broju se radi.
Molim pomoć: kako to postići (ako je moguće) bez math.h, a da nije "glupo", tj. da se silom izbaci math.h, a onda bez veze zakomplicira.
Usput, provjera moga
Unaprijed hvala!
I ako je problem što ja otvaram za svaki zadatak novu temu, meni je svejedno ako, nakon što sve razrješimo, temu obrišete.
Iako mislim da je ovako preglednije za sve, jer u temi "praktični kolokvij" već ima 4 stranice i sve je zbrda zdola, a meni internet jako jako spor i dok se snađem i dok se sve učita treba puno vremena. Ovako mi je jednostavnije, pa zato.
Kod: | #include<stdio.h>
#include<math.h>
int main(void)
{
int b,n,x,i,zbroj=0;
scanf("%d %d",&b,&n);
if (b>1 && b<=10)
{
for (i=0;i<n;i++)
{
scanf("%d",&x);
if (x>=0 && x<b)
{
zbroj+=x*(pow(b,n-i-1));
}
}
printf("Dekadski zapis je %d",zbroj);
}
return 0;
}
|
|
|
[Vrh] |
|
Zenon Forumaš(ica)
Pridružen/a: 09. 09. 2011. (19:14:43) Postovi: (2B1)16
Sarma: -
Lokacija: [tex]\pm\infty[/tex]
|
Postano: 6:50 uto, 15. 11. 2011 Naslov: 15. zadatak, praktični kolokvij |
|
|
[b]Zadatak[/b]:
Napišite program koji kao unos prima paran prirodan broj n > 2 i provjerava da li se n može prikazati kao zboj dva prosta
broja. Ako traženi rastav postoji, onda ga treba i ispisati. Ako postoji više rastava, svejedno je koji se ispisuje. Na primjer
za n = 4 program treba ispisati 4 = 2 + 2, a za n = 10 program treba ispisati 10 = 3 + 7 ili 10 = 5 + 5.
Riješio sam evo i ovo, ali pomoću uvjetnog skoka, što ne znam smijemo li koristiti.
Ako ne, volio bih da mi date hint ili uputu kako ispisati samo jednu kombinaciju bez toga, jer kada nisam imao uvjetni skok ispiše mi ih sve, a komutiranje sam riješio tako da ispiše kombinacije (i,j) samo kada i<=j, ali opet ispiše recimo 10=3+7, 10=5+5 što nisam ni mislio da neće, nego ne znam kako izbjeći :P
[code:1]#include<stdio.h>
int main(void)
{
int n,i,p=2,prost1,prost2;
scanf("%d",&n);
if (n>2 && n%2==0)
{
for(i=2;i<=(n-2);i++)
{
prost1=prost2=1;
while (prost1 && p<i)
{
if(i%p==0) prost1=0;
p++;
}
p=2;
while (prost2 && p<(n-i))
{
if((n-i)%p==0) prost2=0;
p++;
}
p=2;
if (prost1 && prost2)
{
printf("%d=%d+%d\n",n,i,n-i);
goto kraj;
}
}
}
kraj:
return 0;
}
[/code:1]
Zadatak:
Napišite program koji kao unos prima paran prirodan broj n > 2 i provjerava da li se n može prikazati kao zboj dva prosta
broja. Ako traženi rastav postoji, onda ga treba i ispisati. Ako postoji više rastava, svejedno je koji se ispisuje. Na primjer
za n = 4 program treba ispisati 4 = 2 + 2, a za n = 10 program treba ispisati 10 = 3 + 7 ili 10 = 5 + 5.
Riješio sam evo i ovo, ali pomoću uvjetnog skoka, što ne znam smijemo li koristiti.
Ako ne, volio bih da mi date hint ili uputu kako ispisati samo jednu kombinaciju bez toga, jer kada nisam imao uvjetni skok ispiše mi ih sve, a komutiranje sam riješio tako da ispiše kombinacije (i,j) samo kada i⇐j, ali opet ispiše recimo 10=3+7, 10=5+5 što nisam ni mislio da neće, nego ne znam kako izbjeći
Kod: | #include<stdio.h>
int main(void)
{
int n,i,p=2,prost1,prost2;
scanf("%d",&n);
if (n>2 && n%2==0)
{
for(i=2;i<=(n-2);i++)
{
prost1=prost2=1;
while (prost1 && p<i)
{
if(i%p==0) prost1=0;
p++;
}
p=2;
while (prost2 && p<(n-i))
{
if((n-i)%p==0) prost2=0;
p++;
}
p=2;
if (prost1 && prost2)
{
printf("%d=%d+%d\n",n,i,n-i);
goto kraj;
}
}
}
kraj:
return 0;
}
|
|
|
[Vrh] |
|
mdoko Forumaš(ica)
Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol:
Lokacija: Heriot-Watt University, Edinburgh
|
Postano: 7:14 uto, 15. 11. 2011 Naslov: Re: 15. zadatak, praktični kolokvij |
|
|
[quote="Zenon"]
Riješio sam evo i ovo, ali pomoću uvjetnog skoka,
[/quote]
[tt]goto[/tt] se naziva [b]bez[/b]uvjetni skok :wink:
[quote]
što ne znam smijemo li koristiti.
[/quote]
Nije baš najljepše rješenje, ali kao što je već puno puta rečeno, smijete koristiti sve što spada u standardni C.
Zenon (napisa): |
Riješio sam evo i ovo, ali pomoću uvjetnog skoka,
|
goto se naziva bezuvjetni skok
Citat: |
što ne znam smijemo li koristiti.
|
Nije baš najljepše rješenje, ali kao što je već puno puta rečeno, smijete koristiti sve što spada u standardni C.
_________________ Extraordinary claims require extraordinary evidence. – Carl Sagan
|
|
[Vrh] |
|
mdoko Forumaš(ica)
Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol:
Lokacija: Heriot-Watt University, Edinburgh
|
Postano: 7:19 uto, 15. 11. 2011 Naslov: Re: 5. zadatak, praktični kolokvij |
|
|
[quote="Zenon"][b]Zadatak[/b]:
Napišite program koji učitava cijele brojeve b (b<=10) i n, a zatim n brojeva koji predstavljaju znamenke nekog broja u bazi
b. Program treba ispisati o kojem dekadskom broju se radi.
Molim pomoć: kako to postići (ako je moguće) bez math.h, a da nije "glupo", tj. da se silom izbaci math.h, a onda bez veze zakomplicira.
[/quote]
Vidi [url=http://degiorgi.math.hr/forum/viewtopic.php?p=163255#163255]ovaj post[/url].
Zenon (napisa): | Zadatak:
Napišite program koji učitava cijele brojeve b (b⇐10) i n, a zatim n brojeva koji predstavljaju znamenke nekog broja u bazi
b. Program treba ispisati o kojem dekadskom broju se radi.
Molim pomoć: kako to postići (ako je moguće) bez math.h, a da nije "glupo", tj. da se silom izbaci math.h, a onda bez veze zakomplicira.
|
Vidi ovaj post.
_________________ Extraordinary claims require extraordinary evidence. – Carl Sagan
|
|
[Vrh] |
|
Zenon Forumaš(ica)
Pridružen/a: 09. 09. 2011. (19:14:43) Postovi: (2B1)16
Sarma: -
Lokacija: [tex]\pm\infty[/tex]
|
Postano: 7:27 uto, 15. 11. 2011 Naslov: Re: 5. zadatak, praktični kolokvij |
|
|
[quote="mdoko"][quote="Zenon"][b]Zadatak[/b]:
Napišite program koji učitava cijele brojeve b (b<=10) i n, a zatim n brojeva koji predstavljaju znamenke nekog broja u bazi
b. Program treba ispisati o kojem dekadskom broju se radi.
Molim pomoć: kako to postići (ako je moguće) bez math.h, a da nije "glupo", tj. da se silom izbaci math.h, a onda bez veze zakomplicira.
[/quote]
Vidi [url=http://degiorgi.math.hr/forum/viewtopic.php?p=163255#163255]ovaj post[/url].[/quote]
Jasno mi, tako sam i riješio treći, pomoću tog Vašeg hinta, i sada ga ne primjenim ovdje. Prerano je :D
mdoko (napisa): | Zenon (napisa): | Zadatak:
Napišite program koji učitava cijele brojeve b (b⇐10) i n, a zatim n brojeva koji predstavljaju znamenke nekog broja u bazi
b. Program treba ispisati o kojem dekadskom broju se radi.
Molim pomoć: kako to postići (ako je moguće) bez math.h, a da nije "glupo", tj. da se silom izbaci math.h, a onda bez veze zakomplicira.
|
Vidi ovaj post. |
Jasno mi, tako sam i riješio treći, pomoću tog Vašeg hinta, i sada ga ne primjenim ovdje. Prerano je
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 7:37 uto, 15. 11. 2011 Naslov: |
|
|
[quote="Zenon"]volio bih da mi date hint ili uputu kako ispisati samo jednu kombinaciju bez toga[/quote]
[tt]break;[/tt] bi bio prirodna stvar, a u ovom slucaju bi i [tt]return 0;[/tt] funkcioniralo.
[quote="Zenon"]komutiranje sam riješio tako da ispiše kombinacije (i,j) samo kada i<=j, ali opet ispiše recimo 10=3+7, 10=5+5 što nisam ni mislio da neće[/quote]
Ovo nisam razumio.
Molim ne otvarati topic za svaki zadatak posebno. Pogubit cemo se ako bude 50 topica. Postojece cu polijepiti u jedan topic.
Zenon (napisa): | volio bih da mi date hint ili uputu kako ispisati samo jednu kombinaciju bez toga |
break; bi bio prirodna stvar, a u ovom slucaju bi i return 0; funkcioniralo.
Zenon (napisa): | komutiranje sam riješio tako da ispiše kombinacije (i,j) samo kada i⇐j, ali opet ispiše recimo 10=3+7, 10=5+5 što nisam ni mislio da neće |
Ovo nisam razumio.
Molim ne otvarati topic za svaki zadatak posebno. Pogubit cemo se ako bude 50 topica. Postojece cu polijepiti u jedan topic.
_________________ 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] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 7:52 uto, 15. 11. 2011 Naslov: |
|
|
Ref. "prijateljski brojevi" by Zenon...
Cini mi se ok, ovako napamet.
Postoji li neki posebni razlog da toliko ne volis [tt]for[/tt]-petlju? Ova dva [tt]while[/tt]-a imaju i inicijalizaicju i inkrement, pa bi [tt]for[/tt], po meni, bio puno prirodniji.
Takodjer, preporucam inicijalizacije raditi na pocetku, a ne na kraju koraka. Preglednije je, a vjerojatno se zelis moci snalaziti u svojim programima i kad postanu opsezniji.
Evo tvog programa, preradjenog prema tim dvjema uputama (i malo smanjen broj varijabli):
[code:1]#include<stdio.h>
int main(void) {
int m, n, a, b, djelitelj, a2;
scanf("%d %d",&m,&n);
for(a = m; a <= n; a++) {
b = a2 = 0;
for (djelitelj = 1; djelitelj < a; djelitelj++)
if (a % djelitelj == 0) b += djelitelj;
if (b >= m && b <= n) {
for (djelitelj = 1; djelitelj < b; djelitelj++)
if (b % djelitelj == 0) a2 += djelitelj;
if (a2 == a && a < b) printf("(%d,%d)\n", a, b);
}
}
return 0;
}[/code:1]
P.S. Posto ne dije[color=red]lj[/color]imo nego dije[color=green]l[/color]imo, onda se to zove dje[color=green]l[/color]itelj. ;)
Ref. "prijateljski brojevi" by Zenon...
Cini mi se ok, ovako napamet.
Postoji li neki posebni razlog da toliko ne volis for-petlju? Ova dva while-a imaju i inicijalizaicju i inkrement, pa bi for, po meni, bio puno prirodniji.
Takodjer, preporucam inicijalizacije raditi na pocetku, a ne na kraju koraka. Preglednije je, a vjerojatno se zelis moci snalaziti u svojim programima i kad postanu opsezniji.
Evo tvog programa, preradjenog prema tim dvjema uputama (i malo smanjen broj varijabli):
Kod: | #include<stdio.h>
int main(void) {
int m, n, a, b, djelitelj, a2;
scanf("%d %d",&m,&n);
for(a = m; a <= n; a++) {
b = a2 = 0;
for (djelitelj = 1; djelitelj < a; djelitelj++)
if (a % djelitelj == 0) b += djelitelj;
if (b >= m && b <= n) {
for (djelitelj = 1; djelitelj < b; djelitelj++)
if (b % djelitelj == 0) a2 += djelitelj;
if (a2 == a && a < b) printf("(%d,%d)\n", a, b);
}
}
return 0;
} |
P.S. Posto ne dijeljimo nego dijelimo, onda se to zove djelitelj.
_________________ 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] |
|
anamarie Forumaš(ica)
Pridružen/a: 07. 09. 2011. (10:59:19) Postovi: (87)16
Spol:
|
Postano: 8:42 uto, 15. 11. 2011 Naslov: |
|
|
moj 4.zadatak
[code:1]
#include <stdio.h>
#include <stdlib.h>
int main() {
int m,n,i,a,suma,j,sumb,b;
scanf("%d %d", &m, &n);
for(i=m;i<n;i++) {
suma=0;
sumb=0;
a=i;
for(j=1;j<a;j++) {if (a%j==0) suma+=j;}
if (suma<=n && suma>m) b=suma;
for (j=1; j<b; j++) {if (b%j==0) sumb+=j;}
if(sumb/a==1 && sumb%a==0) printf("%d i %d su prijateljski brojevi\n", a, b);
}
system("pause");
return 0;
}
[/code:1]
Meni ispisuje:
220 i 284 su prijateljski brojevi
284 i 220 su prijateljski brojevi
Zanima me je li treba ispisati tako ili je dovoljno samo:220 i 284 su prijateljski brojevi?
Edit: skužila sam,ne čitam zadatak do kraja,treba samo jednom ispisati.
moj 4.zadatak
Kod: |
#include <stdio.h>
#include <stdlib.h>
int main() {
int m,n,i,a,suma,j,sumb,b;
scanf("%d %d", &m, &n);
for(i=m;i<n;i++) {
suma=0;
sumb=0;
a=i;
for(j=1;j<a;j++) {if (a%j==0) suma+=j;}
if (suma<=n && suma>m) b=suma;
for (j=1; j<b; j++) {if (b%j==0) sumb+=j;}
if(sumb/a==1 && sumb%a==0) printf("%d i %d su prijateljski brojevi\n", a, b);
}
system("pause");
return 0;
}
|
Meni ispisuje:
220 i 284 su prijateljski brojevi
284 i 220 su prijateljski brojevi
Zanima me je li treba ispisati tako ili je dovoljno samo:220 i 284 su prijateljski brojevi?
Edit: skužila sam,ne čitam zadatak do kraja,treba samo jednom ispisati.
Zadnja promjena: anamarie; 9:52 uto, 15. 11. 2011; ukupno mijenjano 2 put/a.
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
anamarie Forumaš(ica)
Pridružen/a: 07. 09. 2011. (10:59:19) Postovi: (87)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] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 12:38 uto, 15. 11. 2011 Naslov: |
|
|
[quote="Zenon"][quote="vsego"][tt]break;[/tt] bi bio prirodna stvar, a u ovom slucaju bi i [tt]return 0;[/tt] funkcioniralo.[/quote]
I pomislio sam na break, ali kako ga nikada nisam koristio i ne znam kako točno funkcionira, nisam htio prtljati :D[/quote]
Kao i uvijek, preporucam predavanja. Ne znaci da trebas mijenjati program, no dobro je zaviriti cim skuzis da nesto ne znas.
Zenon (napisa): | vsego (napisa): | break; bi bio prirodna stvar, a u ovom slucaju bi i return 0; funkcioniralo. |
I pomislio sam na break, ali kako ga nikada nisam koristio i ne znam kako točno funkcionira, nisam htio prtljati |
Kao i uvijek, preporucam predavanja. Ne znaci da trebas mijenjati program, no dobro je zaviriti cim skuzis da nesto ne znas.
_________________ 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] |
|
Phoenix Forumaš(ica)
Pridružen/a: 15. 05. 2010. (18:46:07) Postovi: (164)16
Sarma: -
|
|
[Vrh] |
|
spik2nick Forumaš(ica)
Pridružen/a: 28. 09. 2011. (12:41:01) Postovi: (D)16
|
Postano: 15:38 uto, 15. 11. 2011 Naslov: Re: 7. zadatak, praktični kolokvij |
|
|
[quote="Zenon"][b]Zadatak[/b]:
Napišite program koji učitava prirodne brojeve n i d, te pomoću zvjezdica “crta” niz “praznih” kvadrata stranice duljine n,
n − d, . . . (svaki u svoj redak).
Znam da ima, pa bih htio da mi netko pokaže jednostavnije rješenje od moga:
[code:1]#include<stdio.h>
int main(void)
{
int n,b,i,pz=1,sred; // i je broj redka, pz za print zvjezdica, sred su redovi zimedu prvog i zadnjeg redka
scanf("%d %d",&n,&b); //ucitava n i b
while (n>0)
{
for (i=1;i<=n;i++) //broj redka
{
if(i==1 || i==n) //prvi i zadnji redak
{
while (pz<=n)
{
printf("*");
pz++;
}
printf("\n");
pz=1;
}
else //redci izmedu
{
for (sred=1;sred<=n;sred++)
{
if (sred==1 || sred==n) printf("*"); //prvi i zadnji znak
else printf(" "); //znakovi izmedu
}
printf("\n");
}
}
n-=b;
}
return 0;
}
[/code:1]
Hvala unaprijed![/quote]
Ja sam ovako... cini mi se da je malo sistematicnije :D
[code:1]#include<stdio.h>
int main(void)
{
int n,b,i,j;
scanf("%d %d",&n,&b); //ucitava n i b
while (n>0)
{
for(i=1;i<=n;i++)
{
if(n!=1) printf("*");//prva zvjezdica prvi redak, ako je n=1, onda se ispisuje samo jedna zvjezdica na kreju for petlje
if(i==1 || i==n)
{
for(j=2;j<n;j++) printf("*");//srednji stupci(prvi i zadnji redak)
}
else
{
for(j=2;j<n;j++) printf(" ");//srednji stupci(srednji retci)
}
printf("*\n");//zadnji red zadnja zvjezdica
}
n-=b;
}
return 0;
}
[/code:1]
Zenon (napisa): | Zadatak:
Napišite program koji učitava prirodne brojeve n i d, te pomoću zvjezdica “crta” niz “praznih” kvadrata stranice duljine n,
n − d, . . . (svaki u svoj redak).
Znam da ima, pa bih htio da mi netko pokaže jednostavnije rješenje od moga:
Kod: | #include<stdio.h>
int main(void)
{
int n,b,i,pz=1,sred; // i je broj redka, pz za print zvjezdica, sred su redovi zimedu prvog i zadnjeg redka
scanf("%d %d",&n,&b); //ucitava n i b
while (n>0)
{
for (i=1;i<=n;i++) //broj redka
{
if(i==1 || i==n) //prvi i zadnji redak
{
while (pz<=n)
{
printf("*");
pz++;
}
printf("\n");
pz=1;
}
else //redci izmedu
{
for (sred=1;sred<=n;sred++)
{
if (sred==1 || sred==n) printf("*"); //prvi i zadnji znak
else printf(" "); //znakovi izmedu
}
printf("\n");
}
}
n-=b;
}
return 0;
}
|
Hvala unaprijed! |
Ja sam ovako... cini mi se da je malo sistematicnije
Kod: | #include<stdio.h>
int main(void)
{
int n,b,i,j;
scanf("%d %d",&n,&b); //ucitava n i b
while (n>0)
{
for(i=1;i<=n;i++)
{
if(n!=1) printf("*");//prva zvjezdica prvi redak, ako je n=1, onda se ispisuje samo jedna zvjezdica na kreju for petlje
if(i==1 || i==n)
{
for(j=2;j<n;j++) printf("*");//srednji stupci(prvi i zadnji redak)
}
else
{
for(j=2;j<n;j++) printf(" ");//srednji stupci(srednji retci)
}
printf("*\n");//zadnji red zadnja zvjezdica
}
n-=b;
}
return 0;
}
|
_________________ Pokušaj je prvi korak prema neuspjehu!!
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
R2-D2 Forumaš(ica)
Pridružen/a: 11. 10. 2011. (20:32:10) Postovi: (2F)16
|
|
[Vrh] |
|
piccola Forumaš(ica)
Pridružen/a: 30. 11. 2009. (15:39:50) Postovi: (D7)16
|
|
[Vrh] |
|
|