Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

4.zadaća složenije petlje (zadatak)
WWW:
Idite na 1, 2  Sljedeće
Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
maaajčiii
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 05. 01. 2011. (12:11:11)
Postovi: (2D)16
Sarma = la pohva - posuda
= 3 - 0

PostPostano: 12:19 sri, 5. 1. 2011    Naslov: 4.zadaća složenije petlje Citirajte i odgovorite

imam još jedan koji ne valja, ovo je zadatak:
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 19; ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 19, onda ih uspoređujete na uobičajeni način. Ispisane brojeve odvojite razmacima.

moje rješenje:

#include <stdio.h>

int suma ( int a) {
int znam,s=0;
while (a>0) {
znam=a%19;
a=a/19;
s=s+znam; }
return s;
}

int main(void)
{
int n,x[31],i,j;
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d",&x[i]);

for (i=0;i<n-1;i++) {
int sumica=suma(x[i]);
for (j=i+1;j<n;j++) {
if (sumica<suma(x[j])) {

int temp=x[i];
x[i]=x[j];
x[j]=temp;

sumica=suma(x[i]);
}
if (sumica=suma(x[j])) {
int temp=x[i];
x[i]=x[j];
x[j]=temp;}
}}
for (i=0;i<n;i++)
printf("%d ",x[i]);
return 0;
}

zahvaljujem unaprijed!
imam još jedan koji ne valja, ovo je zadatak:
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 19; ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 19, onda ih uspoređujete na uobičajeni način. Ispisane brojeve odvojite razmacima.

moje rješenje:

#include <stdio.h>

int suma ( int a) {
int znam,s=0;
while (a>0) {
znam=a%19;
a=a/19;
s=s+znam; }
return s;
}

int main(void)
{
int n,x[31],i,j;
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d",&x[i]);

for (i=0;i<n-1;i++) {
int sumica=suma(x[i]);
for (j=i+1;j<n;j++) {
if (sumica<suma(x[j])) {

int temp=x[i];
x[i]=x[j];
x[j]=temp;

sumica=suma(x[i]);
}
if (sumica=suma(x[j])) {
int temp=x[i];
x[i]=x[j];
x[j]=temp;}
}}
for (i=0;i<n;i++)
printf("%d ",x[i]);
return 0;
}

zahvaljujem unaprijed!




Zadnja promjena: maaajčiii; 19:24 sri, 5. 1. 2011; ukupno mijenjano 1 put.
[Vrh]
Korisnički profil Pošaljite privatnu poruku
maaajčiii
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 05. 01. 2011. (12:11:11)
Postovi: (2D)16
Sarma = la pohva - posuda
= 3 - 0

PostPostano: 13:34 sri, 5. 1. 2011    Naslov: Citirajte i odgovorite

još jedan zadatak:

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 6, 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.

rješenje koje ne valja:

#include <stdio.h>
#include <math.h>
int main (void)
{
int n,i,j,p=0,znam,prvaznam,max,x[131],noviniz[100];
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d",&x[i]);

max=0;
for (i=n-1;i>=0;i--)
if (x[i]%6==0) max=x[i];

for (i=0;i<n;i++) {
if ((x[i]%6==0) && (x[i]>max)) max=x[i]; }

if (max==0) return 0;
while (max!=0) {
znam=max%10;
max=max/10;
noviniz[p]=abs(znam);
p++; }

for (i=0;i<n;i++) {

while(x[i]!=0) {
prvaznam=x[i]%10;
x[i]=x[i]/10; }

for (j=0;j<p;j++) {
if (abs(prvaznam)==abs(noviniz[j])) { printf("%d ",i); break;} }
}

return 0;
}
još jedan zadatak:

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 6, 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.

rješenje koje ne valja:

#include <stdio.h>
#include <math.h>
int main (void)
{
int n,i,j,p=0,znam,prvaznam,max,x[131],noviniz[100];
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d",&x[i]);

max=0;
for (i=n-1;i>=0;i–)
if (x[i]%6==0) max=x[i];

for (i=0;i<n;i++) {
if ((x[i]%6==0) && (x[i]>max)) max=x[i]; }

if (max==0) return 0;
while (max!=0) {
znam=max%10;
max=max/10;
noviniz[p]=abs(znam);
p++; }

for (i=0;i<n;i++) {

while(x[i]!=0) {
prvaznam=x[i]%10;
x[i]=x[i]/10; }

for (j=0;j<p;j++) {
if (abs(prvaznam)==abs(noviniz[j])) { printf("%d ",i); break;} }
}

return 0;
}


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 19:41 sri, 5. 1. 2011    Naslov: Citirajte i odgovorite

Iznimno odgovaram (vidi moj sig) jer imam 10ak minuta za utuci.

Prvi: zanemarila si "ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 19, onda ih uspoređujete na uobičajeni način".

Drugi: sto ako je najveci broj u nizu djeljiv sa 6 jednak nuli? Dodatno, ako niz sadrzi nulu, [tt]prvaznam[/tt] ce ostati izracunata od prethodnog broja.

Preporucam zaviriti u mail s izvjestajem od zadace. Tamo pisu primjeri na kojima programi padnu.
Iznimno odgovaram (vidi moj sig) jer imam 10ak minuta za utuci.

Prvi: zanemarila si "ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 19, onda ih uspoređujete na uobičajeni način".

Drugi: sto ako je najveci broj u nizu djeljiv sa 6 jednak nuli? Dodatno, ako niz sadrzi nulu, prvaznam ce ostati izracunata od prethodnog broja.

Preporucam zaviriti u mail s izvjestajem od zadace. Tamo pisu primjeri na kojima programi padnu.



_________________
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
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Lepi91
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 09. 2010. (15:22:23)
Postovi: (C8)16
Spol: muško
Sarma = la pohva - posuda
= 13 - 4

PostPostano: 22:40 sri, 5. 1. 2011    Naslov: imam i ja jedan :( Citirajte i odgovorite

Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (uvažavajući kratnost) svih cijelih brojeva različitih od nule koji se nalaze između n i -25 (uključivo).

#include<stdio.h>

int prost(int x)
{
int i,p;
p=1;
for (i=2; i<x; i++)
if (x%i==0) p=0;
if (x==1) p=0;
return p;
}


int main()
{
int n,i,l,max,s;

scanf("%d",&amp;n);
max=25;
s=0;
if (abs(n)>max) max=abs(n);

for (l=2; l<=max; l++)
if (prost(l)){
if (n<=-25)
for(i=n; i<=-25; i++)
if (i%l==0) {
s+=l;
break;
}

if (-25<n)
for (i=-25; i<=n; i++)
if (i%l==0){
s+=l;
break;
}
}
printf("%d",s);
scanf("%%");
return 0;
}

zadaca ga nece priznat kaj je krivo? :cry:
Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (uvažavajući kratnost) svih cijelih brojeva različitih od nule koji se nalaze između n i -25 (uključivo).

#include<stdio.h>

int prost(int x)
{
int i,p;
p=1;
for (i=2; i<x; i++)
if (x%i==0) p=0;
if (x==1) p=0;
return p;
}


int main()
{
int n,i,l,max,s;

scanf("%d",&amp;n);
max=25;
s=0;
if (abs(n)>max) max=abs(n);

for (l=2; l<=max; l++)
if (prost(l)){
if (n<=-25)
for(i=n; i<=-25; i++)
if (i%l==0) {
s+=l;
break;
}

if (-25<n)
for (i=-25; i<=n; i++)
if (i%l==0){
s+=l;
break;
}
}
printf("%d",s);
scanf("%%");
return 0;
}

zadaca ga nece priznat kaj je krivo? Crying or Very sad



_________________
tko rano rani,malo spava
[Vrh]
Korisnički profil Pošaljite privatnu poruku
pbakic
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 05. 10. 2009. (17:48:30)
Postovi: (143)16
Spol: muško
Sarma = la pohva - posuda
83 = 86 - 3

PostPostano: 2:10 čet, 6. 1. 2011    Naslov: Citirajte i odgovorite

Ima par stvari koje se daju ispravit:
Ides s vanjskom petljom po svim prostim djeliteljima, a zatim za svaki
broj u zadanom intervalu provjeravas je li djeljiv s prostim.
Uoci sto ce se dogoditi ako primjenimo tvoj kod:
Uzmemo neki prost broj, npr 2.
Sad idemo po svim brojevima iz intervala, i cim naletimo na prvi djeljiv s 2, dodamo 2 u sumu i izlazimo iz petlje (break), nakon cega prelazimo na sljedeci prost broj.
Ovakvim pristupom svaki prost broj pribrojit cemo sumi najvise jednom, a vjerojatno bi ga trebalo pribrojiti puno vise puta.
Za [b]svaki[/b] broj u intervalu moramo zbrojiti sve njegove proste djelitelje, [b]uvazavajuci kratnost[/b].
To znaci, ako unesemo -24, tj. interval je [-25,-24]:
-25=-5*5 => u sumu dodajemo 5+5=10
-24=-2*2*2*3 => u sumu dodajemo 2+2+2+3=9
U svakom slucaju, treba maknuti sve "break" naredbe - time cemo dozvoliti da se za svaki broj u intervalu provjeri je li djeljiv s trenutnim prostim (tj. necemo izaci cim nadjemo prvi djeljiv s prostim)
Cak i kada smo maknuli break, nismo gotovi, ne racunamo koliko puta je trenutni broj djeljiv s prostim.
Zato bi trebali umjesto oba ifa "if (i%l==0)" staviti
for(pom=i; pom!=0 && pom%l==0; pom/=l) s+=l;
Ima par stvari koje se daju ispravit:
Ides s vanjskom petljom po svim prostim djeliteljima, a zatim za svaki
broj u zadanom intervalu provjeravas je li djeljiv s prostim.
Uoci sto ce se dogoditi ako primjenimo tvoj kod:
Uzmemo neki prost broj, npr 2.
Sad idemo po svim brojevima iz intervala, i cim naletimo na prvi djeljiv s 2, dodamo 2 u sumu i izlazimo iz petlje (break), nakon cega prelazimo na sljedeci prost broj.
Ovakvim pristupom svaki prost broj pribrojit cemo sumi najvise jednom, a vjerojatno bi ga trebalo pribrojiti puno vise puta.
Za svaki broj u intervalu moramo zbrojiti sve njegove proste djelitelje, uvazavajuci kratnost.
To znaci, ako unesemo -24, tj. interval je [-25,-24]:
-25=-5*5 ⇒ u sumu dodajemo 5+5=10
-24=-2*2*2*3 ⇒ u sumu dodajemo 2+2+2+3=9
U svakom slucaju, treba maknuti sve "break" naredbe - time cemo dozvoliti da se za svaki broj u intervalu provjeri je li djeljiv s trenutnim prostim (tj. necemo izaci cim nadjemo prvi djeljiv s prostim)
Cak i kada smo maknuli break, nismo gotovi, ne racunamo koliko puta je trenutni broj djeljiv s prostim.
Zato bi trebali umjesto oba ifa "if (i%l==0)" staviti
for(pom=i; pom!=0 && pom%l==0; pom/=l) s+=l;


[Vrh]
Korisnički profil Pošaljite privatnu poruku
maaajčiii
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 05. 01. 2011. (12:11:11)
Postovi: (2D)16
Sarma = la pohva - posuda
= 3 - 0

PostPostano: 18:20 sub, 8. 1. 2011    Naslov: Citirajte i odgovorite

ja imam i dalje problema s prvim zadatkom koji sam tu napisala...
i imam malo nedoumica oko toga kako gledati sumu znamenki u bazi 19, npr. broj 25 je u bazi 19 G (tj. 16) ali jel se onda gleda kao da je zbroj 16 ili bi trebala uzeti da je 7?

zašto ovo nije dobro? ovako sam htjela sortirati ako su im jednake sume,to sam ubacila nakon sorta sa sumama:
[code:1]
for (i=0;i<n-1;i++) {
int sumica=suma(x[i]);
for (j=i+1;j<n;j++) {
if (sumica==suma(x[j]) && suma1(x[i])<suma1(x[j])) {

int temp=x[i];
x[i]=x[j];
x[j]=temp;
[/code:1]
ja imam i dalje problema s prvim zadatkom koji sam tu napisala...
i imam malo nedoumica oko toga kako gledati sumu znamenki u bazi 19, npr. broj 25 je u bazi 19 G (tj. 16) ali jel se onda gleda kao da je zbroj 16 ili bi trebala uzeti da je 7?

zašto ovo nije dobro? ovako sam htjela sortirati ako su im jednake sume,to sam ubacila nakon sorta sa sumama:
Kod:
 
  for (i=0;i<n-1;i++) {
int sumica=suma(x[i]);
 for (j=i+1;j<n;j++) {
 if (sumica==suma(x[j]) && suma1(x[i])<suma1(x[j])) {

 int temp=x[i];
 x[i]=x[j];
 x[j]=temp; 


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 20:06 sub, 8. 1. 2011    Naslov: Citirajte i odgovorite

Sort po dva kriterija radi se ovako:

[code:1]for(i...)
for(j...)
if (prvi_kriterij(x[i]) < prvi_kriterij(x[j]) ||
(prvi_kriterij(x[i]) == prvi_kriterij(x[j]) && drugi_kritrij(x[i]) < drugi_kritrij(x[j])) {
zamjena x[i] i x[j]
}[/code:1]

Broj 25 se u bazi 19 pise 16, dakle suma je 7. Broj 16 se pise G. Ne brkati ta dva broja (znamenke 1,6 i zmanenku 16 (tj. G)).

Kao u binarnom sustavu: broj 3 je 11, a ne B (sto bi valjda bilo 11).
Sort po dva kriterija radi se ovako:

Kod:
for(i...)
  for(j...)
    if (prvi_kriterij(x[i]) < prvi_kriterij(x[j]) ||
        (prvi_kriterij(x[i]) == prvi_kriterij(x[j]) && drugi_kritrij(x[i]) < drugi_kritrij(x[j])) {
      zamjena x[i] i x[j]
    }


Broj 25 se u bazi 19 pise 16, dakle suma je 7. Broj 16 se pise G. Ne brkati ta dva broja (znamenke 1,6 i zmanenku 16 (tj. G)).

Kao u binarnom sustavu: broj 3 je 11, a ne B (sto bi valjda bilo 11).



_________________
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
[Vrh]
Korisnički profil Pošaljite privatnu poruku
maaajčiii
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 05. 01. 2011. (12:11:11)
Postovi: (2D)16
Sarma = la pohva - posuda
= 3 - 0

PostPostano: 23:26 sub, 8. 1. 2011    Naslov: Citirajte i odgovorite

možda sam ja krivo shvatila zadatak...nikako mi ne uspijeva. ovak mi izgleda nakon šta sam prepravila,ali i dalje nije dobro:
[code:1]
#include <stdio.h>

int suma ( int a) {
int znam,s=0;
while (a>0) {
znam=a%19;
a=a/19;
s=s+znam; }
return s;
}

int main(void)
{
int n,x[31],i,j;
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d",&x[i]);

for (i=0;i<n-1;i++) {
int sumica=suma(x[i]);
for (j=i+1;j<n;j++) {
if ((sumica<suma(x[j])) || ((sumica == suma(x[j])) && ((x[i]) < (x[j])))) {

int temp=x[i];
x[i]=x[j];
x[j]=temp;

sumica=suma(x[i]);
}

}}

for (i=0;i<n;i++)
printf("%d ",x[i]);
return 0;
}
[/code:1]
možda sam ja krivo shvatila zadatak...nikako mi ne uspijeva. ovak mi izgleda nakon šta sam prepravila,ali i dalje nije dobro:
Kod:

#include <stdio.h>

int suma ( int a) {
int znam,s=0;
while (a>0) {
znam=a%19;
a=a/19;
s=s+znam; }
return s;
}

int main(void)
{
int n,x[31],i,j;
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d",&x[i]);

for (i=0;i<n-1;i++) {
int sumica=suma(x[i]);
 for (j=i+1;j<n;j++) {
 if ((sumica<suma(x[j]))  || ((sumica == suma(x[j])) && ((x[i]) < (x[j])))) {

 int temp=x[i];
 x[i]=x[j];
 x[j]=temp;

 sumica=suma(x[i]);
 }

 }}

 for (i=0;i<n;i++)
 printf("%d ",x[i]);
 return 0;
 }


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 1:34 ned, 9. 1. 2011    Naslov: Citirajte i odgovorite

Koliko vidim, ne radi dobro za negativne brojeve (hint: funkcija koja racuna sumu).
Koliko vidim, ne radi dobro za negativne brojeve (hint: funkcija koja racuna sumu).



_________________
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
[Vrh]
Korisnički profil Pošaljite privatnu poruku
maaajčiii
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 05. 01. 2011. (12:11:11)
Postovi: (2D)16
Sarma = la pohva - posuda
= 3 - 0

PostPostano: 11:33 ned, 9. 1. 2011    Naslov: Citirajte i odgovorite

hvala, sad radi!
hvala, sad radi!


[Vrh]
Korisnički profil Pošaljite privatnu poruku
ON
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 02. 2010. (19:31:10)
Postovi: (D)16
Spol: muško
Sarma = la pohva - posuda
= 1 - 1

PostPostano: 20:08 pon, 10. 1. 2011    Naslov: Citirajte i odgovorite

imam problem s ovim zadatkom šaljem ga već bar 20. put i nikako mi ne prihvaća ,,a program radi u čemu je problem ,molin vas pomozite



Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve koji se nalaze između a i b (uključivo i a i b), a u zapisu s bazom 7 imaju samo znamenke djeljive sa 3. Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema, program ispisuje poruku "Nema takvih brojeva.". Pazite da tekst bude naveden točno kako piše (bez navodnika)!
Oprez: može biti a<b ili a>b ili a=b!


#include <stdio.h>
int main (void)
{ int a, b, t, i, br=0, x, djel;
scanf("%d%d", &a,&b);

if(a>b)
{t=a;
a=b;
b=t;} printf("%d ", a);
for(i=a;i<=b;++i)
{ djel=1;
x=i;
while(x!=0)
{ if(x>=7 && (x%7)%3!=0)
djel=0;
if(x<7 && (x%3)!=0)
djel=0;
x=x/7; }

if(djel==1) { printf("%d ", i);

br++;}
}
printf("%d ", b);
if(br==0) printf("Nema takvih brojeva.");
return 0;
}

[size=9][color=#999999]Added after 7 minutes:[/color][/size]

imam problem s ovim zadatkom šaljem ga već bar 20. put i nikako mi ne prihvaća ,,a program radi u čemu je problem ,molin vas pomozite



Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve koji se nalaze između a i b (uključivo i a i b), a u zapisu s bazom 7 imaju samo znamenke djeljive sa 3. Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema, program ispisuje poruku "Nema takvih brojeva.". Pazite da tekst bude naveden točno kako piše (bez navodnika)!
Oprez: može biti a<b ili a>b ili a=b!


#include <stdio.h>
int main (void)
{ int a, b, t, i, br=0, x, djel;
scanf("%d%d", &a,&b);

if(a>b)
{t=a;
a=b;
b=t;} printf("%d ", a);
for(i=a;i<=b;++i)
{ djel=1;
x=i;
while(x!=0)
{ if(x>=7 && (x%7)%3!=0)
djel=0;
if(x<7 && (x%3)!=0)
djel=0;
x=x/7; }

if(djel==1) { printf("%d ", i);

br++;}
}
printf("%d ", b);
if(br==0) printf("Nema takvih brojeva.");
return 0;
}
imam problem s ovim zadatkom šaljem ga već bar 20. put i nikako mi ne prihvaća ,,a program radi u čemu je problem ,molin vas pomozite



Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve koji se nalaze između a i b (uključivo i a i b), a u zapisu s bazom 7 imaju samo znamenke djeljive sa 3. Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema, program ispisuje poruku "Nema takvih brojeva.". Pazite da tekst bude naveden točno kako piše (bez navodnika)!
Oprez: može biti a<b ili a>b ili a=b!


#include <stdio.h>
int main (void)
{ int a, b, t, i, br=0, x, djel;
scanf("%d%d", &a,&b);

if(a>b)
{t=a;
a=b;
b=t;} printf("%d ", a);
for(i=a;i⇐b;++i)
{ djel=1;
x=i;
while(x!=0)
{ if(x>=7 && (x%7)%3!=0)
djel=0;
if(x<7 && (x%3)!=0)
djel=0;
x=x/7; }

if(djel==1) { printf("%d ", i);

br++;}
}
printf("%d ", b);
if(br==0) printf("Nema takvih brojeva.");
return 0;
}

Added after 7 minutes:

imam problem s ovim zadatkom šaljem ga već bar 20. put i nikako mi ne prihvaća ,,a program radi u čemu je problem ,molin vas pomozite



Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve koji se nalaze između a i b (uključivo i a i b), a u zapisu s bazom 7 imaju samo znamenke djeljive sa 3. Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema, program ispisuje poruku "Nema takvih brojeva.". Pazite da tekst bude naveden točno kako piše (bez navodnika)!
Oprez: može biti a<b ili a>b ili a=b!


#include <stdio.h>
int main (void)
{ int a, b, t, i, br=0, x, djel;
scanf("%d%d", &a,&b);

if(a>b)
{t=a;
a=b;
b=t;} printf("%d ", a);
for(i=a;i⇐b;++i)
{ djel=1;
x=i;
while(x!=0)
{ if(x>=7 && (x%7)%3!=0)
djel=0;
if(x<7 && (x%3)!=0)
djel=0;
x=x/7; }

if(djel==1) { printf("%d ", i);

br++;}
}
printf("%d ", b);
if(br==0) printf("Nema takvih brojeva.");
return 0;
}


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Cobs
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 21. 01. 2008. (13:32:15)
Postovi: (206)16
Spol: muško
Sarma = la pohva - posuda
26 = 40 - 14
Lokacija: Geto

PostPostano: 20:30 pon, 10. 1. 2011    Naslov: Citirajte i odgovorite

rješi se ovog djela
[code:1]printf("%d ", a); [/code:1]
[code:1]printf("%d ", b); [/code:1]
pa probaj ponovno.

( i koristi ove blokove za kod jer neki forumaši preskaču zadatke gdje kod nije u bloku )
rješi se ovog djela
Kod:
printf("%d ", a);

Kod:
printf("%d ", b);

pa probaj ponovno.

( i koristi ove blokove za kod jer neki forumaši preskaču zadatke gdje kod nije u bloku )


[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
ON
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 02. 2010. (19:31:10)
Postovi: (D)16
Spol: muško
Sarma = la pohva - posuda
= 1 - 1

PostPostano: 12:16 sri, 12. 1. 2011    Naslov: Citirajte i odgovorite

riješim se otog dijela ali tad nijsu uključeni a i b u ispis ,,,i opet mi ga ne prihvaća ,,u ispisu mi trebaju biti i a i b i određeni brojevi koji zadovoljavaju kriterija ,,zanima me jel tu treba uključiti još koju inicijalizaciju ili kako već ,,,
riješim se otog dijela ali tad nijsu uključeni a i b u ispis ,,,i opet mi ga ne prihvaća ,,u ispisu mi trebaju biti i a i b i određeni brojevi koji zadovoljavaju kriterija ,,zanima me jel tu treba uključiti još koju inicijalizaciju ili kako već ,,,


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 16:01 sri, 12. 1. 2011    Naslov: Citirajte i odgovorite

Naslucujem gdje je greska. Sto u mailu pise, za koji primjer stvar "pada"?
Naslucujem gdje je greska. Sto u mailu pise, za koji primjer stvar "pada"?



_________________
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
[Vrh]
Korisnički profil Pošaljite privatnu poruku
smrtTrokutima
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 12. 2010. (13:47:58)
Postovi: (7)16
Spol: žensko
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 21:49 sub, 15. 1. 2011    Naslov: Citirajte i odgovorite

ako neko ima vremena zamolila bi da mi pogleda ovaj programčić... Javlja mi da je greška za 46, pa sam išla to ručno računati i isto je ko i sa programom... dakle, mislim a je točan... ali...

Zadatak 4:
Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (ignorirajući kratnost) svih cijelih brojeva različitih od nule koji se nalaze između n i 32 (uključivo).

[code:1]
#include<stdio.h>

int main()
{
int n, S = 0, i, a, x;

scanf("%d", &n);

if(n < 32)
for(i = n; i <= 32; i++)
{
a = i;
x = 2;
while(a > 1)
{
while(!(a % x))
{
S = S + x;
a = a / x;
}
x++;
}
}
else
for(i = 32; i <= n; i++)
{
a = i;
x = 2;
while(a > 1)
{
while(!(a % x))
{
S = S + x;
a = a / x;
}
x++;
}
}

printf("%d", S);
return 0;
}
[/code:1]


Zanemarite, ispravljeno je... :D
ako neko ima vremena zamolila bi da mi pogleda ovaj programčić... Javlja mi da je greška za 46, pa sam išla to ručno računati i isto je ko i sa programom... dakle, mislim a je točan... ali...

Zadatak 4:
Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (ignorirajući kratnost) svih cijelih brojeva različitih od nule koji se nalaze između n i 32 (uključivo).

Kod:

#include<stdio.h>

int main()
{
    int n, S = 0, i, a, x;

    scanf("%d", &n);

    if(n < 32)
        for(i = n; i <= 32; i++)
            {
                a = i;
                x = 2;
                while(a > 1)
                    {
                        while(!(a % x))
                            {
                                S = S + x;
                                a = a / x;
                            }
                        x++;
                    }
            }
    else
        for(i = 32; i <= n; i++)
            {
                a = i;
                x = 2;
                while(a > 1)
                    {
                        while(!(a % x))
                            {
                                S = S + x;
                                a = a / x;
                            }
                        x++;
                    }
            }

    printf("%d", S);
    return 0;
}



Zanemarite, ispravljeno je... Very Happy


[Vrh]
Korisnički profil Pošaljite privatnu poruku
crazy
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 13. 06. 2010. (19:06:23)
Postovi: (16)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 18:26 pon, 17. 1. 2011    Naslov: Citirajte i odgovorite

Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve oblika 5*4^i-3 koji
se nalaze između a i b (bez a i b). Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema,
program ispisuje poruku "Nema takvih brojeva."


#include<stdio.h>
int main(void)
{
int a,b,pot=1,t,max,min,br=0;
scanf("%d %d",&a, &b);

if(a>b) {t=a;a=b;b=t;}
min=(a+1)/5;
max=(b+1)/5;
if(a!=b)
{
while(pot<=min)
pot*=4;
while(pot>min && pot<max)
{
printf("%d ",5*pot-3);
pot*=4;
br++;
}
}
if(br==0)
printf("Nema takvih brojeva.");
return 0;
}

za npr 1 i 80, program mi ispisuje mi 2 i 17, a trebalo bi i 77.. moze ispravak?? (ak nije bed doslovan, jer sam puno putat slala ovaj zad) hvalaa :o

[size=9][color=#999999]Added after 10 minutes:[/color][/size]

**min=(a+3)/5;
max=(b+3)/5;
Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve oblika 5*4^i-3 koji
se nalaze između a i b (bez a i b). Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema,
program ispisuje poruku "Nema takvih brojeva."


#include<stdio.h>
int main(void)
{
int a,b,pot=1,t,max,min,br=0;
scanf("%d %d",&a, &b);

if(a>b) {t=a;a=b;b=t;}
min=(a+1)/5;
max=(b+1)/5;
if(a!=b)
{
while(pot⇐min)
pot*=4;
while(pot>min && pot<max)
{
printf("%d ",5*pot-3);
pot*=4;
br++;
}
}
if(br==0)
printf("Nema takvih brojeva.");
return 0;
}

za npr 1 i 80, program mi ispisuje mi 2 i 17, a trebalo bi i 77.. moze ispravak?? (ak nije bed doslovan, jer sam puno putat slala ovaj zad) hvalaa Surprised

Added after 10 minutes:

**min=(a+3)/5;
max=(b+3)/5;


[Vrh]
Korisnički profil Pošaljite privatnu poruku
crazy
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 13. 06. 2010. (19:06:23)
Postovi: (16)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 20:29 pon, 17. 1. 2011    Naslov: Citirajte i odgovorite

ne trebaaa, dodoh do tocnog rj :o
ne trebaaa, dodoh do tocnog rj Surprised


[Vrh]
Korisnički profil Pošaljite privatnu poruku
akolak
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 27. 12. 2010. (16:52:59)
Postovi: (1D)16
Sarma = la pohva - posuda
= 5 - 1

PostPostano: 20:44 pon, 17. 1. 2011    Naslov: Citirajte i odgovorite

Evo i ja imam problem:
zad 4
Napišite program koji učitava prirodni broj n<71, te niz od n cijelih brojeva. Program treba u originalnom poretku ispisati sve elemente x[i] niza takve da je ostatak pri dijeljenju apsolutne vrijednosti x[i] s 14 jednak ostatku koji pri istom takvom dijeljenju daje najmanji od učitanih brojeva. Ispisane brojeve odvojite razmakom.

Kad računam ostatak pri djeljenju najmanjeg od učitanih brojeva sa 14, jel uzimam najmanji, ili aposlutno od najmanjeg??
Evo i ja imam problem:
zad 4
Napišite program koji učitava prirodni broj n<71, te niz od n cijelih brojeva. Program treba u originalnom poretku ispisati sve elemente x[i] niza takve da je ostatak pri dijeljenju apsolutne vrijednosti x[i] s 14 jednak ostatku koji pri istom takvom dijeljenju daje najmanji od učitanih brojeva. Ispisane brojeve odvojite razmakom.

Kad računam ostatak pri djeljenju najmanjeg od učitanih brojeva sa 14, jel uzimam najmanji, ili aposlutno od najmanjeg??


[Vrh]
Korisnički profil Pošaljite privatnu poruku
fejky
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 23. 06. 2010. (16:53:45)
Postovi: (3D)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
12 = 15 - 3

PostPostano: 21:34 pon, 17. 1. 2011    Naslov: Citirajte i odgovorite

Napišite program koji učitava prirodni broj n<71, te niz od n cijelih brojeva. Program treba u originalnom poretku ispisati sve elemente x[i] niza takve da je ostatak pri dijeljenju apsolutne vrijednosti x[i] s 14 jednak ostatku [b]koji pri istom takvom dijeljenju[/b] daje najmanji od učitanih brojeva. Ispisane brojeve odvojite razmakom.

Po mojemu apsolutno isto :)
Napišite program koji učitava prirodni broj n<71, te niz od n cijelih brojeva. Program treba u originalnom poretku ispisati sve elemente x[i] niza takve da je ostatak pri dijeljenju apsolutne vrijednosti x[i] s 14 jednak ostatku koji pri istom takvom dijeljenju daje najmanji od učitanih brojeva. Ispisane brojeve odvojite razmakom.

Po mojemu apsolutno isto Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku
lost_soul
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 18. 10. 2009. (17:38:41)
Postovi: (133)16
Sarma = la pohva - posuda
= 15 - 6

PostPostano: 22:01 pon, 17. 1. 2011    Naslov: Citirajte i odgovorite

imala sam isti takav zadatak, jedino je bilo dijeljenje sa 7, gledala sam ostatak od apsolutne vrijednosti najmanjeg i bilo je dobro rješenje ;)
imala sam isti takav zadatak, jedino je bilo dijeljenje sa 7, gledala sam ostatak od apsolutne vrijednosti najmanjeg i bilo je dobro rješenje Wink


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Idite na 1, 2  Sljedeće
Stranica 1 / 2.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan