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

zadaća,programiranje 1 (zadatak)
WWW:
Idite na Prethodno  1, 2, 3, 4, 5, 6, 7  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
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: 11:38 ned, 16. 1. 2011    Naslov: Citirajte i odgovorite

Cemu sluze deklaracije tipova u [b]pozivu[/b] funkcije?
Cemu sluze deklaracije tipova u pozivu funkcije?



_________________
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
malisa..
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 14. 11. 2010. (19:10:54)
Postovi: (F)16
Sarma = la pohva - posuda
= 1 - 0

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

može pomoć? naime imam ovako zadan zadatak....
Napišite program koji učitava prirodne brojeve a i b, te u padajućem poretku ispisuje sve cijele brojeve koji se nalaze između a i b (bez a i b), a u zapisu s bazom 9 imaju samo znamenke između 4 i 7 (uključivo i granice). 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!

i ovako je riješen, radi ali ga u zadaći ne prihvaća kao točnog.. ZAŠTO???



[code:1]#include <stdio.h>
int baza (int x) {
int da=0;
while(x>0) {
if (x%9>=4 && x%9<=7) {da=1; break;}
x/=9;
}
return da;
}

int main (void) {
int a, b, i, k=1;
scanf("%d %d", &a, &b);


if (a>b) {int temp=a; a=b; b=temp;}
for (i=b-1; i>a; i--)
if (baza(i)==1){ printf("%d ", i); k++;}
if ((a==b) || (k==1)) printf("Nema takvih brojeva.");
return 0;
}[/code:1]
može pomoć? naime imam ovako zadan zadatak....
Napišite program koji učitava prirodne brojeve a i b, te u padajućem poretku ispisuje sve cijele brojeve koji se nalaze između a i b (bez a i b), a u zapisu s bazom 9 imaju samo znamenke između 4 i 7 (uključivo i granice). 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!

i ovako je riješen, radi ali ga u zadaći ne prihvaća kao točnog.. ZAŠTO???



Kod:
#include <stdio.h>
int baza (int x) {
int da=0;
while(x>0) {
    if (x%9>=4 && x%9<=7) {da=1; break;}
    x/=9;
    }
return da;
}

int main (void) {
int a, b, i, k=1;
scanf("%d %d", &a, &b);


if (a>b) {int temp=a; a=b; b=temp;}
for (i=b-1; i>a; i--)
    if (baza(i)==1){ printf("%d ", i); k++;}
    if ((a==b) || (k==1)) printf("Nema takvih brojeva.");
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: 12:31 ned, 16. 1. 2011    Naslov: Citirajte i odgovorite

Provjera je kriva. Isprobaj sto ce ti vratiti [tt]baza(37)[/tt]. Primijeti da je
[latex](37)_{10} = (41)_9[/latex],
pa bi funkcija trebala vratiti nulu (jer nisu [b]sve[/b] znamenke izmedju 4 i 7.

Inace, to sto "radi", ne znaci da radi ono sto se trazi. Tome sluzi racunalo, da isprobate na primjerima koje mozete provjeriti "na ruke".
Provjera je kriva. Isprobaj sto ce ti vratiti baza(37). Primijeti da je
,
pa bi funkcija trebala vratiti nulu (jer nisu sve znamenke izmedju 4 i 7.

Inace, to sto "radi", ne znaci da radi ono sto se trazi. Tome sluzi racunalo, da isprobate na primjerima koje mozete provjeriti "na ruke".



_________________
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
niko4ever
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 09. 2010. (20:15:53)
Postovi: (1C)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 12:44 ned, 16. 1. 2011    Naslov: Nizove, Zadatak 4: Citirajte i odgovorite

Ovaj zadatak sam probala sto puta, mislim da možda krivo tumačim pitanje:
"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 13; ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 13, onda ih uspoređujete na uobičajeni način. Ispisane brojeve odvojite razmacima."

#include <stdio.h>

int base(int n)
{
int suma=0;
while (n>0)
{ suma+=n%13;
n/=13;
}
return suma;
}


int main()
{
int n, i, tempb=0, tempa=0;
scanf ("%d", &n);
int a[n], b[n];

for (i=0; i<n; i++)
{
scanf ("%d", &a[i]);
}

for (i=0; i<n; i++)
{
b[i]=base(a[i]);
}

for (i=0; i<(n-1); i++)
{
if (b[i]<b[i+1])
{
tempb=b[i+1];
b[i+1]=b[i];
b[i]=tempb;

tempa=a[i+1];
a[i+1]=a[i];
a[i]=tempa;

i=0;
}

if (b[i]==b[i+1])
{if (a[i]<a[i+1])
{tempa=a[i+1];
a[i+1]=a[i];
a[i]=tempa;
i=0;
}}}

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

return 0;
}


Hvala vam
Ovaj zadatak sam probala sto puta, mislim da možda krivo tumačim pitanje:
"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 13; ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 13, onda ih uspoređujete na uobičajeni način. Ispisane brojeve odvojite razmacima."

#include <stdio.h>

int base(int n)
{
int suma=0;
while (n>0)
{ suma+=n%13;
n/=13;
}
return suma;
}


int main()
{
int n, i, tempb=0, tempa=0;
scanf ("%d", &n);
int a[n], b[n];

for (i=0; i<n; i++)
{
scanf ("%d", &a[i]);
}

for (i=0; i<n; i++)
{
b[i]=base(a[i]);
}

for (i=0; i<(n-1); i++)
{
if (b[i]<b[i+1])
{
tempb=b[i+1];
b[i+1]=b[i];
b[i]=tempb;

tempa=a[i+1];
a[i+1]=a[i];
a[i]=tempa;

i=0;
}

if (b[i]==b[i+1])
{if (a[i]<a[i+1])
{tempa=a[i+1];
a[i+1]=a[i];
a[i]=tempa;
i=0;
}}}

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

return 0;
}


Hvala vam


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


Pridružen/a: 18. 05. 2010. (22:18:01)
Postovi: (AB)16
Spol: žensko
Sarma = la pohva - posuda
= 14 - 11

PostPostano: 15:21 ned, 16. 1. 2011    Naslov: Citirajte i odgovorite

Ne zelim nikoga vrijedati, no vecina kodova ovdje je jako ruzna za citati pa ih neki forumasi preskoce. Ili se jednostavno pogube u silnim zagradama u istom redu.

Koristite [code:1]Pregledniji sam. [/code:1]
Ne zelim nikoga vrijedati, no vecina kodova ovdje je jako ruzna za citati pa ih neki forumasi preskoce. Ili se jednostavno pogube u silnim zagradama u istom redu.

Koristite
Kod:
Pregledniji sam.


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


Pridružen/a: 14. 11. 2010. (19:10:54)
Postovi: (F)16
Sarma = la pohva - posuda
= 1 - 0

PostPostano: 16:56 ned, 16. 1. 2011    Naslov: Citirajte i odgovorite

hvala... iako ni dalje ga ne znam riješiti.. tj i dalje imam problema s zadatkom ali u međuvremenu je shvaćeno u čemu je greška... sad slijedi pokušavanje (do beskraja) da rješenje bude ispravno...
hvala... iako ni dalje ga ne znam riješiti.. tj i dalje imam problema s zadatkom ali u međuvremenu je shvaćeno u čemu je greška... sad slijedi pokušavanje (do beskraja) da rješenje bude ispravno...


[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: 17:12 ned, 16. 1. 2011    Naslov: Citirajte i odgovorite

Nije li lakse pogledati u predavanja kako se rade provjere da li nesto vrijedi za sve (znamenke) i dali nesto (znamenka) postoji?
Nije li lakse pogledati u predavanja kako se rade provjere da li nesto vrijedi za sve (znamenke) i dali nesto (znamenka) postoji?



_________________
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
malisa..
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 14. 11. 2010. (19:10:54)
Postovi: (F)16
Sarma = la pohva - posuda
= 1 - 0

PostPostano: 17:33 ned, 16. 1. 2011    Naslov: Citirajte i odgovorite

možda je jednostavnije... ali ovako ć u lakše shvatiti... :) :) :P ali naravno i to mi je palo na pamet..... [size=7]nekom teško dođe iz gu***e u glavu :) [/size] :)
možda je jednostavnije... ali ovako ć u lakše shvatiti... Smile Smile Razz ali naravno i to mi je palo na pamet..... nekom teško dođe iz gu***e u glavu Smile Smile


[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: 18:27 ned, 16. 1. 2011    Naslov: Citirajte i odgovorite

Napišite program koji učitava prirodni broj n, te po redu ispisuje n malih slova engleskog alfabeta, počevši sa slovom 'm'. Ispisana slova odvojite razmacima. Ako je n prevelik, ispis treba stati sa slovom 'z'.

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

int main(){
int n;
scanf("%d", &n);

if (n > 0) printf("m ");
if (n > 1) printf("n ");
if (n > 2) printf("o ");
if (n > 3) printf("p ");
if (n > 4) printf("q ");
if (n > 5) printf("r ");
if (n > 6) printf("s ");
if (n > 7) printf("t ");
if (n > 8) printf("u ");
if (n > 9) printf("v ");
if (n > 10) printf("w ");
if (n > 11) printf("x ");
if (n > 12) printf("y ");
if (n > 13) printf("z ");

return 0;
}[/code:1]

Vertifikator javlja gresku za 36. A nije mi jasno zasto, ako upisem 36 ispisat ce abecedu pocevsi sa slovom m i do slova z.
Napišite program koji učitava prirodni broj n, te po redu ispisuje n malih slova engleskog alfabeta, počevši sa slovom 'm'. Ispisana slova odvojite razmacima. Ako je n prevelik, ispis treba stati sa slovom 'z'.

Kod:

#include <stdio.h>

int main(){
    int n;
    scanf("%d", &n);

    if (n > 0)  printf("m ");
    if (n > 1)  printf("n ");
    if (n > 2)  printf("o ");
    if (n > 3)  printf("p ");
    if (n > 4)  printf("q ");
    if (n > 5)  printf("r ");
    if (n > 6)  printf("s ");
    if (n > 7)  printf("t ");
    if (n > 8)  printf("u ");
    if (n > 9)  printf("v ");
    if (n > 10) printf("w ");
    if (n > 11) printf("x ");
    if (n > 12) printf("y ");
    if (n > 13) printf("z ");

    return 0;
}


Vertifikator javlja gresku za 36. A nije mi jasno zasto, ako upisem 36 ispisat ce abecedu pocevsi sa slovom m i do slova z.


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


Pridružen/a: 14. 10. 2010. (21:05:03)
Postovi: (16)16
Sarma = la pohva - posuda
-1 = 1 - 2

PostPostano: 18:33 ned, 16. 1. 2011    Naslov: Citirajte i odgovorite

stavi ovako slicno,kod mene pocinje sa slovom g:
#include<stdio.h>
#include <stdlib.h>
int main()
{
int n,i;
scanf("%d",&n);
for(i=1;i<=n &&i<21;i++){
if(i==1)printf("g ");
if(i==2)printf("h ");
if(i==3)printf("i ");
if(i==4)printf("j ");
if(i==5)printf("k ");
if(i==6)printf("l ");
if(i==7)printf("m ");
if(i==8)printf("n ");
if(i==9)printf("o ");
if(i==10)printf("p ");
if(i==11)printf("q ");
if(i==12)printf("r ");
if(i==13)printf("s ");
if(i==14)printf("t ");
if(i==15)printf("u ");
if(i==16)printf("v ");
if(i==17)printf("w ");
if(i==18)printf("x ");
if(i==19)printf("y ");
if(i==20)printf("z ");
}
return 0; }
stavi ovako slicno,kod mene pocinje sa slovom g:
#include<stdio.h>
#include <stdlib.h>
int main()
{
int n,i;
scanf("%d",&n);
for(i=1;i<=n &&i<21;i++){
if(i==1)printf("g ");
if(i==2)printf("h ");
if(i==3)printf("i ");
if(i==4)printf("j ");
if(i==5)printf("k ");
if(i==6)printf("l ");
if(i==7)printf("m ");
if(i==8)printf("n ");
if(i==9)printf("o ");
if(i==10)printf("p ");
if(i==11)printf("q ");
if(i==12)printf("r ");
if(i==13)printf("s ");
if(i==14)printf("t ");
if(i==15)printf("u ");
if(i==16)printf("v ");
if(i==17)printf("w ");
if(i==18)printf("x ");
if(i==19)printf("y ");
if(i==20)printf("z ");
}
return 0; }


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


Pridružen/a: 14. 11. 2010. (19:10:54)
Postovi: (F)16
Sarma = la pohva - posuda
= 1 - 0

PostPostano: 18:42 ned, 16. 1. 2011    Naslov: Citirajte i odgovorite

evo ti najednostavnije moguce rjesenje

[code:1]#include<stdio.h>
int main(void)
{
int n, a;
char c='m';
scanf("%d", &n);
for (a=1; a<=n; ++a){
printf("%c ", c);
if (c=='z') break;
else c++;
}
return 0;
}[/code:1]
evo ti najednostavnije moguce rjesenje

Kod:
#include<stdio.h>
int main(void)
{
    int n, a;
char c='m';
scanf("%d", &n);
for (a=1; a<=n; ++a){
    printf("%c ", c);
    if (c=='z') break;
    else c++;
    }
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: 18:52 ned, 16. 1. 2011    Naslov: Citirajte i odgovorite

@fejky: Jesi siguran da je to rjesenje koje si uploadao? Ovako slozeno, cini mi se da bi trebalo raditi...
@fejky: Jesi siguran da je to rjesenje koje si uploadao? Ovako slozeno, cini mi se da bi trebalo raditi...



_________________
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
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: 19:33 ned, 16. 1. 2011    Naslov: Citirajte i odgovorite

Poslije v sam zaboravio staviti razmak :roll:

Hvala
Poslije v sam zaboravio staviti razmak Rolling Eyes

Hvala


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


Pridružen/a: 17. 10. 2010. (20:15:17)
Postovi: (56)16
Sarma = la pohva - posuda
= 4 - 0

PostPostano: 22:32 ned, 16. 1. 2011    Naslov: Citirajte i odgovorite

Mene također muči zadatak iz 5 zadace:

"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 15; ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 15, onda ih uspoređujete na uobičajeni način. Ispisane brojeve odvojite razmacima."

[code:1]
#include <stdio.h>
int main() {
int x[30], i, j, n, nered, temp;
scanf ("%d", &n);

for (i=0; i<n; i++) scanf ("%d", &x[i]);

do {
nered=0;
for (i=0; i<n-1; i++){
for (j=i+1; j<n; j++)
if (x[i]<x[j]) { temp=x[i];
x[i]=x[j];
x[j]=temp;
nered=1;
}
}}while (nered);

nered=1;
do {
nered=0;
for (i=0; i<n-1; i++){
int a, suma1;
if (x[i]<0) a=-x[i];
else a=x[i];
suma1=0;
while (a){ suma1+=a%15;
a/=15;
}
for (j=i+1; j<n; j++){
int b, suma2;
if (x[j]<0) b=-x[j];
else b=x[j];
suma2=0;
while (b){ suma2+=b%15;
b/=15;
}
if (suma1<suma2){temp=x[i];
x[i]=x[j];
x[j]=temp;
nered=1;
}}}
}while (nered);



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

system ("pause");
return 0;
}[/code:1]
Mene također muči zadatak iz 5 zadace:

"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 15; ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 15, onda ih uspoređujete na uobičajeni način. Ispisane brojeve odvojite razmacima."

Kod:

#include <stdio.h>
int main() {
int x[30], i, j, n, nered, temp;
scanf ("%d", &n);

for (i=0; i<n; i++) scanf ("%d", &x[i]);

do {
    nered=0;
  for (i=0; i<n-1; i++){
      for (j=i+1; j<n; j++)
          if (x[i]<x[j]) { temp=x[i];
                           x[i]=x[j];
                           x[j]=temp;
                           nered=1;
          }
}}while (nered);   

nered=1;
do {
    nered=0;
for (i=0; i<n-1; i++){
    int a, suma1;
    if (x[i]<0) a=-x[i];
    else a=x[i];
    suma1=0;
 while (a){ suma1+=a%15;
               a/=15;
               }
      for (j=i+1; j<n; j++){
          int b, suma2;
          if (x[j]<0) b=-x[j];
          else b=x[j];
          suma2=0;
          while (b){ suma2+=b%15;
                     b/=15;
                    }
          if (suma1<suma2){temp=x[i];
                           x[i]=x[j];
                           x[j]=temp;
                          nered=1;
                          }}}
}while (nered);                   
                                         
                 
             
for (i=0; i<n; i++)
printf ("%d ", x[i]);

system ("pause");
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: 2:17 pon, 17. 1. 2011    Naslov: Citirajte i odgovorite

[quote="Buki"]Mene također muči zadatak iz 5 zadace:...
[/quote]

počeo gledat kod i odmah mi je zapeo
[code:1]system("pause");[/code:1]
na kraju... pa probaj bez toga, a ak i onda imaš problema javi
[size=7]( i [b]možda[/b] bi svaki broj trebao biti u svojem redu? )[/size]
Buki (napisa):
Mene također muči zadatak iz 5 zadace:...


počeo gledat kod i odmah mi je zapeo
Kod:
system("pause");

na kraju... pa probaj bez toga, a ak i onda imaš problema javi
( i možda bi svaki broj trebao biti u svojem redu? )


[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
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: 6:52 pon, 17. 1. 2011    Naslov: Citirajte i odgovorite

Ovo [tt]system("pause");[/tt] je cisti vishak, no ne bi trebalo smetati.

Sort po dva kriterija se ne radi tako da se prvo sortira po jednom, a onda po drugom, jer drugi sort narusi prvi.

Treba napraviti obicni sort i prilagoditi uvjet kad dva elementa niza zamjenjuju mjesto.
Ovo system("pause"); je cisti vishak, no ne bi trebalo smetati.

Sort po dva kriterija se ne radi tako da se prvo sortira po jednom, a onda po drugom, jer drugi sort narusi prvi.

Treba napraviti obicni sort i prilagoditi uvjet kad dva elementa niza zamjenjuju mjesto.



_________________
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
travana
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 22. 09. 2010. (17:12:41)
Postovi: (16)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 11:07 pon, 17. 1. 2011    Naslov: Citirajte i odgovorite

imam problema s 1. zadatkom iz zadnje zadace: Napisite program koji ucitava prirodni broj n<131, te niz od n cijelih brojeva. Program treba pronaci najveci element niza djeljiv s 16, te u originalnom poretku ispisati indekse onih elementa niza kojima je prva znamenka jedna od znamenki pronadjenog maksimuma.
Ako trazeni maksimum ne postoji, program ne smije nista ispisati. Ispisane brojeve odvojite razmacima.


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

int main () {

int n, x[131], i, j, k, max, t, br=0, da=0;

scanf ("%d", &n);

for (i=0; i<n; ++i) scanf ("%d", &x[i]);

max=x[0];

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

while (max==x[0] && x[0]%16!=0) break;

if (max<0) max=-max;

t=max;
if (t==0) br=1;
else if (t!=0)
while (t>0) {
t/=10; ++br;
}
for (k=0; k<n; ++k) {
if (x[k]<0) x[k]=-x[k];
while (x[k]>9) x[k]/=10;

for (j=0; j<br; ++j) {

if (x[k]<=9 && x[k]!=max%10)
{ da=0; max/=10; }

else if (x[k]<=9 && x[k]==max%10)
da=1;
}
if (da==1) printf ("%d ", k);
else continue;
}

return 0;
}[/code:1]


naime program mi radi kad obrnem for petlje, ali onda idem po nizu onoliko puta koliko znamenaka ima maksimum pa ne ispisuje indekse u originalnom poretku nego kako nadje odgovarajuceg clana, a ovako mi ne ispisuje nista :roll:
imam problema s 1. zadatkom iz zadnje zadace: Napisite program koji ucitava prirodni broj n<131, te niz od n cijelih brojeva. Program treba pronaci najveci element niza djeljiv s 16, te u originalnom poretku ispisati indekse onih elementa niza kojima je prva znamenka jedna od znamenki pronadjenog maksimuma.
Ako trazeni maksimum ne postoji, program ne smije nista ispisati. Ispisane brojeve odvojite razmacima.


Kod:
#include <stdio.h>

  int main () {

    int n, x[131], i, j, k, max, t, br=0, da=0;

    scanf ("%d", &n);

    for (i=0; i<n; ++i) scanf ("%d", &x[i]);

    max=x[0];

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

    while (max==x[0] && x[0]%16!=0) break;

    if (max<0) max=-max;

      t=max;
      if (t==0) br=1;
      else if (t!=0)
      while (t>0) {
        t/=10; ++br;
    }
            for (k=0; k<n; ++k) {
                if (x[k]<0) x[k]=-x[k];
                while (x[k]>9) x[k]/=10;

                for (j=0; j<br; ++j) {

        if (x[k]<=9 && x[k]!=max%10)
         { da=0; max/=10; }

        else if (x[k]<=9 && x[k]==max%10)
        da=1;
                }
        if (da==1) printf ("%d ", k);
        else continue;
     }

  return 0;
  }



naime program mi radi kad obrnem for petlje, ali onda idem po nizu onoliko puta koliko znamenaka ima maksimum pa ne ispisuje indekse u originalnom poretku nego kako nadje odgovarajuceg clana, a ovako mi ne ispisuje nista Rolling Eyes


[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: 11:28 pon, 17. 1. 2011    Naslov: Citirajte i odgovorite

Ne, program nikako ne radi jer pogresno nalazi maksimum. To je vec puno puta objasnjeno na Forumu, pa necu sada ponavljati.

Dodatno, ovo je besmisleno:
[tt]while (max==x[0] && x[0]%16!=0) break;[/tt]
Cemu sluzi petlja u kojoj se ne radi nista osim sto ju se odmah prekine?
Ne, program nikako ne radi jer pogresno nalazi maksimum. To je vec puno puta objasnjeno na Forumu, pa necu sada ponavljati.

Dodatno, ovo je besmisleno:
while (max==x[0] && x[0]%16!=0) break;
Cemu sluzi petlja u kojoj se ne radi nista osim sto ju se odmah prekine?



_________________
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
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: 12:33 pon, 17. 1. 2011    Naslov: Citirajte i odgovorite

Isti zadatak ko i kolega, samo sa brojem 5, znaci.

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

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

int abs(int a){
if (a < 0) return -a;
return a;
}
//vraca prvu znamenku od broja
int prvaznam(int a){
while (a/10 != 0) a = a/10;
return a;
}
//u niz sprema sve znamenke broja (broj, niz, count)
void znam_max(int max, int maxznam[], int *count){
while (max != 0){
maxznam[(*count)] = abs(max%10);
(*count)++;
max = max/10;
}
}

int main(){
int n, i, j, niz[130], max, maxznam[100], count = 0;
scanf("%d", &n);

for (i = 0; i < n; ++i){
scanf("%d", &niz[i]);

if (count == 0 && niz[i]%5 == 0 ){ max = niz[i]; count = 1; }
else if (niz[i]%5 == 0 && niz[i] > max && count == 1) max = niz[i];
}

count = 0;
znam_max(max, maxznam, &count);

for (i = 0; i < n; i++){
for (j = 0; j < count; ++j){
if (niz[i] == 0) break;
if (abs(prvaznam(niz[i])) == maxznam[j]) printf("%d ", i);
}

}

return 0;
}
[/code:1]

Vertifikator javlja gresku za niz od 130 znakova (maximum je 100).
Isprobao sa dosta brojeva i nisam nasao niti jedan di ne radi.
Isti zadatak ko i kolega, samo sa brojem 5, znaci.

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

Kod:
#include <stdio.h>

int abs(int a){
    if (a < 0) return -a;
    return a;
}
//vraca prvu znamenku od broja
int prvaznam(int a){
    while (a/10 != 0) a = a/10;
    return a;
}
//u niz sprema sve znamenke broja (broj, niz, count)
void znam_max(int max, int maxznam[], int *count){
    while (max != 0){
        maxznam[(*count)] = abs(max%10);
        (*count)++;
        max = max/10;
        }
}

int main(){
    int n, i, j, niz[130], max, maxznam[100], count = 0;
    scanf("%d", &n);

    for (i = 0; i < n; ++i){
        scanf("%d", &niz[i]);

        if (count == 0 && niz[i]%5 == 0 ){ max = niz[i]; count = 1; }
        else if (niz[i]%5 == 0 && niz[i] > max && count == 1) max = niz[i];
    }

    count = 0;
    znam_max(max, maxznam, &count);

    for (i = 0; i < n; i++){
        for (j = 0; j < count; ++j){
            if (niz[i] == 0) break;
            if (abs(prvaznam(niz[i])) == maxznam[j]) printf("%d ", i);
        }

    }

    return 0;
}


Vertifikator javlja gresku za niz od 130 znakova (maximum je 100).
Isprobao sa dosta brojeva i nisam nasao niti jedan di ne radi.


[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: 12:44 pon, 17. 1. 2011    Naslov: Citirajte i odgovorite

Ne razumijem zasto preskaces ispis nule. Po cemu su nule posebne?

Ako maksimum ima dvije ili vise jednakih znamenaka (npr. kod tebe je to 0) i neki broj zapocinje s tom znamenkom (vjerujem da u nizu imas neku nulu), onda ce se taj broj ispisati (pre)vise puta (onoliko puta koliko se ta znamenka pojavljuje u maksimumu).

Ti preskaces ispis nula i to ti je greska, no kad maknes taj [tt]if[/tt], ostaje ovo sto sam opisao. Jedan mali [tt]break[/tt]ic i mislim da bi trebalo biti ok.
Ne razumijem zasto preskaces ispis nule. Po cemu su nule posebne?

Ako maksimum ima dvije ili vise jednakih znamenaka (npr. kod tebe je to 0) i neki broj zapocinje s tom znamenkom (vjerujem da u nizu imas neku nulu), onda ce se taj broj ispisati (pre)vise puta (onoliko puta koliko se ta znamenka pojavljuje u maksimumu).

Ti preskaces ispis nula i to ti je greska, no kad maknes taj if, ostaje ovo sto sam opisao. Jedan mali breakic i mislim da bi trebalo biti ok.



_________________
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
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 Prethodno  1, 2, 3, 4, 5, 6, 7  Sljedeće
Stranica 6 / 7.

 
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