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

Zadatak iz zadace.
WWW:
Idite na 1, 2, 3 ... 16, 17, 18  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
Bole13
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 01. 11. 2008. (00:33:50)
Postovi: (5A)16
Spol: muško
Sarma = la pohva - posuda
= 5 - 0

PostPostano: 19:37 čet, 10. 12. 2009    Naslov: Citirajte i odgovorite

Napišite program koji učitava prirodni broj n≤17, te niz od n cijelih brojeva. Program treba ispisati produkt zadnjih 5 neparnih elemenata niza.
Ako neparnih brojeva ima manje od 5, ispišite produkt svih neparnih. Ako neparnih brojeva uopće nema u nizu, ispišite 1.

Ja sam to ovako rjesio, kompajlira se dobro, ali nes me zeza, nece ucitat kako spada i onda ne ispise na kraju nista:

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

int main () {
int n, a[17], i, br=0, b=1;
scanf("%d ", &n);
for(i=0; i<n; i++) scanf("%d ", &a[i]);
i=n-1;
while((br<5) && (i>=0)) {
if(a[i]%2==1) {
br++;
b*=a[i];
i--;
}
}
if(br==0) printf("1");
else printf("%d", b);
system("pause");
return 0;
}[/code:1]

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

Nvm nasao gresku -.-, smanjivao indekse niza unutar while petlje u ifu umjesto izvan ifa.
Napišite program koji učitava prirodni broj n≤17, te niz od n cijelih brojeva. Program treba ispisati produkt zadnjih 5 neparnih elemenata niza.
Ako neparnih brojeva ima manje od 5, ispišite produkt svih neparnih. Ako neparnih brojeva uopće nema u nizu, ispišite 1.

Ja sam to ovako rjesio, kompajlira se dobro, ali nes me zeza, nece ucitat kako spada i onda ne ispise na kraju nista:

Kod:
#include <stdio.h>
#include <stdlib.h>

int main () {
int n, a[17], i, br=0, b=1;
scanf("%d ", &n);
for(i=0; i<n; i++) scanf("%d ", &a[i]);
i=n-1;
while((br<5) && (i>=0)) {
            if(a[i]%2==1) {
                          br++;
                          b*=a[i];
                          i--;
                          }
            }
if(br==0) printf("1");
else printf("%d", b);
system("pause");
return 0;
}


Added after 16 minutes:

Nvm nasao gresku -.-, smanjivao indekse niza unutar while petlje u ifu umjesto izvan ifa.


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


Pridružen/a: 11. 09. 2008. (10:54:06)
Postovi: (370)16
Sarma = la pohva - posuda
-29 = 108 - 137
Lokacija: Pula

PostPostano: 21:07 čet, 10. 12. 2009    Naslov: Citirajte i odgovorite

gledam di je greska da bi kad je nadem vidio da vec pise di je :lol: :lol: :lol:
gledam di je greska da bi kad je nadem vidio da vec pise di je Laughing Laughing Laughing



_________________
Mario Berljafa
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Bole13
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 01. 11. 2008. (00:33:50)
Postovi: (5A)16
Spol: muško
Sarma = la pohva - posuda
= 5 - 0

PostPostano: 21:17 čet, 10. 12. 2009    Naslov: Citirajte i odgovorite

Hehe moze lock/delete. Tnx anyway :).
Hehe moze lock/delete. Tnx anyway Smile.


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


Pridružen/a: 13. 07. 2009. (23:07:06)
Postovi: (192)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
-21 = 37 - 58

PostPostano: 23:45 pet, 11. 12. 2009    Naslov: Citirajte i odgovorite

za 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 5 i 8 (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!
" mi piše da mi je netočno za input 712, 717, a kod ide ovako
[code:1]#include<stdlib.h>
#include<stdio.h>
int main ()
{
int a, b, i, j, z, p, x, k=0;
scanf ("%d %d", &a, &b);
if (a>b)
{
int temp=a;
a=b;
b=temp;
}

for (i=b; i>=a; --i)
{
x=i;
if (x==0) printf ("0 ");
while(x)
{ p=1;
z=x%9;
x=x/9;
if (z!=5 && z!=6 && z!=7 && z!=8) { p=0; break; }
}
if (p!=0) { k=k+1; printf ("%d ", i); }
}
if (k==0) printf ("Nema takvih brojeva.");
return 0;
}
[/code:1]
a za zadatak "Napišite program koji učitava prirodni broj n, te "crta" pravokutni trokut sastavljen od zvjezdica ("*"). Trokut treba imati katete duljina n (vodoravna) i 4n (vertikalna), a pravi kut mora biti "nacrtan" u gornjem lijevom kutu.
Uputa: prvih 4 linija treba biti duljine n, idućih 4 duljine n-1, i tako dalje.
" piše da je netočno za input 22, kod:
[code:1]#include <stdio.h>
#include<stdlib.h>
int main ()
{
int n, m, i, j, k;
scanf ("%d", &n);
m=n;
for (i=1; i<=n; i++)
{ for (j=1; j<=4; j++)
{for (k=1; k<=m; k++)
printf ("*");
if (j!=4) printf ("\n"); }
m=m-1;
printf ("\n");}

return 0;
}[/code:1]
koliko ja vidim zadaci mi rade dobro, da li netko vidi grešku?
za 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 5 i 8 (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!
" mi piše da mi je netočno za input 712, 717, a kod ide ovako
Kod:
#include<stdlib.h>
#include<stdio.h>
int main ()
{
int a, b, i, j, z, p, x, k=0;
scanf ("%d %d", &a, &b);
if (a>b)
{
        int temp=a;
        a=b;
        b=temp;
        }

for (i=b; i>=a; --i)
{
    x=i;
    if (x==0) printf ("0 ");
    while(x)
    { p=1;
    z=x%9;
    x=x/9;
    if (z!=5 && z!=6 && z!=7 && z!=8) { p=0; break; }     
    }
            if (p!=0) { k=k+1; printf ("%d ", i); }
}
if (k==0) printf ("Nema takvih brojeva.");
return 0;
}

a za zadatak "Napišite program koji učitava prirodni broj n, te "crta" pravokutni trokut sastavljen od zvjezdica ("*"). Trokut treba imati katete duljina n (vodoravna) i 4n (vertikalna), a pravi kut mora biti "nacrtan" u gornjem lijevom kutu.
Uputa: prvih 4 linija treba biti duljine n, idućih 4 duljine n-1, i tako dalje.
" piše da je netočno za input 22, kod:
Kod:
#include <stdio.h>
#include<stdlib.h>
int main ()
{
int n, m, i, j, k;
scanf ("%d", &n);
m=n;
for (i=1; i<=n; i++)
    { for (j=1; j<=4; j++)
        {for (k=1; k<=m; k++)
        printf ("*");
        if (j!=4) printf ("\n"); }
        m=m-1;
        printf ("\n");}

return 0;
}

koliko ja vidim zadaci mi rade dobro, da li netko vidi grešku?


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


Pridružen/a: 08. 11. 2009. (19:45:28)
Postovi: (94)16
Sarma = la pohva - posuda
-2 = 4 - 6

PostPostano: 23:44 ned, 3. 1. 2010    Naslov: Citirajte i odgovorite

I ja imam problema sa zadatkom sa bazom. Kod mene je jedino bila baza 8 i trebalo je ispisati brojeve koje imaju u bazi 8 znamenke između 3 i 7 uključivo. Kaže mi da mi je pogrešno za 205 719.


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


int main (void) {

int a, br,b,i,z, pv, kv=0, c;
scanf("%d %d", &a, &b);
if (a>b) {
pv=a;
a=b;
b=pv;
}

for (i=a;i<=b;i++) {

br=1;
c=i;
while (c>0) {

z=c%8;
if (z<3) br=0;
c/=8;

}

if (br) {

kv=1;
printf("%d ", i);

}


}
if (!(kv))
printf("Nema takvih brojeva.");
system("pause");
return 0;
}
[/code:1]
I ja imam problema sa zadatkom sa bazom. Kod mene je jedino bila baza 8 i trebalo je ispisati brojeve koje imaju u bazi 8 znamenke između 3 i 7 uključivo. Kaže mi da mi je pogrešno za 205 719.


Kod:
#include <stdio.h>


int main (void) {
   
    int a, br,b,i,z, pv, kv=0, c;
    scanf("%d %d", &a, &b);
    if (a>b) {
        pv=a;
        a=b;
        b=pv;
        }     
   
    for (i=a;i<=b;i++) {
       
        br=1;
        c=i;
        while (c>0) {

              z=c%8;
              if (z<3) br=0;
              c/=8;   

                 }                 
                 
        if (br) {
                     
                      kv=1;
                      printf("%d ", i);

                      }                     
                     
                     
                      }
    if (!(kv))
       printf("Nema takvih brojeva.");
    system("pause");
   return 0; 
}     


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


Pridružen/a: 10. 07. 2008. (02:30:58)
Postovi: (10F)16
Spol: muško
Sarma = la pohva - posuda
97 = 132 - 35
Lokacija: Zagreb

PostPostano: 0:35 pon, 4. 1. 2010    Naslov: Citirajte i odgovorite

[quote="eve"]za 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 5 i 8 (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!
" mi piše da mi je netočno za input 712, 717, a kod ide ovako
[code:1]#include<stdlib.h>
#include<stdio.h>
int main ()
{
int a, b, i, j, z, p, x, k=0;
scanf ("%d %d", &a, &b);
if (a>b)
{
int temp=a;
a=b;
b=temp;
}

for (i=b; i>=a; --i)
{
x=i;
if (x==0) printf ("0 ");
while(x)
{ p=1;
z=x%9;
x=x/9;
if (z!=5 && z!=6 && z!=7 && z!=8) { p=0; break; }
}
if (p!=0) { k=k+1; printf ("%d ", i); }
}
if (k==0) printf ("Nema takvih brojeva.");
return 0;
}
[/code:1][/quote]

Evo ispravljene verzije, stavio sam komentar na sve što sam mijenjao.
[code:1]
#include<stdlib.h>
#include<stdio.h>
int main ()
{
int a, b, z, p, x, k=0, temp, i;
scanf ("%d %d", &a, &b);

if (a>b)
{
temp=a;
a=b;
b=temp;
}

for (i=b-1; i>a; --i) //...izmedju a i b (bez a i b)
{
x=i;
//x nikad nece biti 0, a i b su prirodni, a i da je 0 ne bi ga trebalo ispisati, jer broj mora sadrzavati samo
//znamenke 5, 6, 7, 8
p=1; //prije petlje ga postavis na 1, da ne radis to stalno
while(x)
{
z=x%9;
x=x/9;
if (z!=5 && z!=6 && z!=7 && z!=8) { p=0; break; }
}
//poslije zadnjeg ispisanog broja ti ne treba razmak.
//postupimo ovako: prvi broj koji ispisujemo (kad naidjemo na njega k ce biti nula)
//ispisemo bez razmaka prije njega, a prije svih ostalih ispisemo razmak
if(p==1)
{
if(k!=0) printf(" ");
k=k+1;
printf("%d", i);
}
}
if (k==0) printf ("Nema takvih brojeva.");
printf("\n"); //na kraju predjemo u novi red
return 0;
}
[/code:1]

[quote="eve"]a za zadatak "Napišite program koji učitava prirodni broj n, te "crta" pravokutni trokut sastavljen od zvjezdica ("*"). Trokut treba imati katete duljina n (vodoravna) i 4n (vertikalna), a pravi kut mora biti "nacrtan" u gornjem lijevom kutu.
Uputa: prvih 4 linija treba biti duljine n, idućih 4 duljine n-1, i tako dalje.
" piše da je netočno za input 22, kod:
[code:1]#include <stdio.h>
#include<stdlib.h>
int main ()
{
int n, m, i, j, k;
scanf ("%d", &n);
m=n;
for (i=1; i<=n; i++)
{ for (j=1; j<=4; j++)
{for (k=1; k<=m; k++)
printf ("*");
if (j!=4) printf ("\n"); }
m=m-1;
printf ("\n");}

return 0;
}[/code:1]
koliko ja vidim zadaci mi rade dobro, da li netko vidi grešku?[/quote]

U ovom ne mogu naći grešku, napisao sam drukčiji kod, pa probaj ti usporediti, možda nađeš grešku (ako je uopće ima), opet, stavio sam komentare.
[code:1]
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int n, i, j;
scanf("%d", &n);
while(n) //sve dok je n>0 ispisi cetiri linije zvijezdica duljine n
{
for(i=0; i<4; ++i) //petlja koja prelazi iz linije u liniju
{
for(j=0; j<n; ++j) //petlja koja ispisuje n zvijezdica u trenutnu liniju
printf("*");
printf("\n"); //prebaci se u novu liniju
}
n--; //smanji n za 1
}
return 0;
}
[/code:1]

[quote="Tomy007"]I ja imam problema sa zadatkom sa bazom. Kod mene je jedino bila baza 8 i trebalo je ispisati brojeve koje imaju u bazi 8 znamenke između 3 i 7 uključivo. Kaže mi da mi je pogrešno za 205 719.


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


int main (void) {

int a, br,b,i,z, pv, kv=0, c;
scanf("%d %d", &a, &b);
if (a>b) {
pv=a;
a=b;
b=pv;
}

for (i=a;i<=b;i++) {

br=1;
c=i;
while (c>0) {

z=c%8;
if (z<3) br=0;
c/=8;

}

if (br) {

kv=1;
printf("%d ", i);

}


}
if (!(kv))
printf("Nema takvih brojeva.");
system("pause");
return 0;
}
[/code:1][/quote]

Sve je u redu, samo pripazi na ono što sam u zadatku prije popravio i ako je to zadatak za zadaću ili što već kad šalješ makni system("pause").
eve (napisa):
za 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 5 i 8 (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!
" mi piše da mi je netočno za input 712, 717, a kod ide ovako
Kod:
#include<stdlib.h>
#include<stdio.h>
int main ()
{
int a, b, i, j, z, p, x, k=0;
scanf ("%d %d", &a, &b);
if (a>b)
{
        int temp=a;
        a=b;
        b=temp;
        }

for (i=b; i>=a; --i)
{
    x=i;
    if (x==0) printf ("0 ");
    while(x)
    { p=1;
    z=x%9;
    x=x/9;
    if (z!=5 && z!=6 && z!=7 && z!=8) { p=0; break; }     
    }
            if (p!=0) { k=k+1; printf ("%d ", i); }
}
if (k==0) printf ("Nema takvih brojeva.");
return 0;
}


Evo ispravljene verzije, stavio sam komentar na sve što sam mijenjao.
Kod:

#include<stdlib.h>
#include<stdio.h>
int main ()
{
int a, b, z, p, x, k=0, temp, i;
scanf ("%d %d", &a, &b);

if (a>b)
{
        temp=a;
        a=b;
        b=temp;
        }

for (i=b-1; i>a; --i) //...izmedju a i b (bez a i b)
{
    x=i;
    //x nikad nece biti 0, a i b su prirodni, a i da je 0 ne bi ga trebalo ispisati, jer broj mora sadrzavati samo
    //znamenke 5, 6, 7, 8
    p=1; //prije petlje ga postavis na 1, da ne radis to stalno
    while(x)
    {
    z=x%9;
    x=x/9;
    if (z!=5 && z!=6 && z!=7 && z!=8) { p=0; break; }     
    }
   //poslije zadnjeg ispisanog broja ti ne treba razmak.
   //postupimo ovako: prvi broj koji ispisujemo (kad naidjemo na njega k ce biti nula)
   //ispisemo bez razmaka prije njega, a prije svih ostalih ispisemo razmak
   if(p==1)
      {
      if(k!=0) printf(" ");
      k=k+1;
      printf("%d", i);
      }
}
if (k==0) printf ("Nema takvih brojeva.");
printf("\n"); //na kraju predjemo u novi red
return 0;
}


eve (napisa):
a za zadatak "Napišite program koji učitava prirodni broj n, te "crta" pravokutni trokut sastavljen od zvjezdica ("*"). Trokut treba imati katete duljina n (vodoravna) i 4n (vertikalna), a pravi kut mora biti "nacrtan" u gornjem lijevom kutu.
Uputa: prvih 4 linija treba biti duljine n, idućih 4 duljine n-1, i tako dalje.
" piše da je netočno za input 22, kod:
Kod:
#include <stdio.h>
#include<stdlib.h>
int main ()
{
int n, m, i, j, k;
scanf ("%d", &n);
m=n;
for (i=1; i<=n; i++)
    { for (j=1; j<=4; j++)
        {for (k=1; k<=m; k++)
        printf ("*");
        if (j!=4) printf ("\n"); }
        m=m-1;
        printf ("\n");}

return 0;
}

koliko ja vidim zadaci mi rade dobro, da li netko vidi grešku?


U ovom ne mogu naći grešku, napisao sam drukčiji kod, pa probaj ti usporediti, možda nađeš grešku (ako je uopće ima), opet, stavio sam komentare.
Kod:

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int n, i, j;
scanf("%d", &n);
while(n) //sve dok je n>0 ispisi cetiri linije zvijezdica duljine n
   {
   for(i=0; i<4; ++i) //petlja koja prelazi iz linije u liniju
      {
      for(j=0; j<n; ++j) //petlja koja ispisuje n zvijezdica u trenutnu liniju
         printf("*");
      printf("\n"); //prebaci se u novu liniju
      }
   n--; //smanji n za 1
   }
return 0;
}


Tomy007 (napisa):
I ja imam problema sa zadatkom sa bazom. Kod mene je jedino bila baza 8 i trebalo je ispisati brojeve koje imaju u bazi 8 znamenke između 3 i 7 uključivo. Kaže mi da mi je pogrešno za 205 719.


Kod:
#include <stdio.h>


int main (void) {
   
    int a, br,b,i,z, pv, kv=0, c;
    scanf("%d %d", &a, &b);
    if (a>b) {
        pv=a;
        a=b;
        b=pv;
        }     
   
    for (i=a;i<=b;i++) {
       
        br=1;
        c=i;
        while (c>0) {

              z=c%8;
              if (z<3) br=0;
              c/=8;   

                 }                 
                 
        if (br) {
                     
                      kv=1;
                      printf("%d ", i);

                      }                     
                     
                     
                      }
    if (!(kv))
       printf("Nema takvih brojeva.");
    system("pause");
   return 0; 
}     


Sve je u redu, samo pripazi na ono što sam u zadatku prije popravio i ako je to zadatak za zadaću ili što već kad šalješ makni system("pause").


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
Tomy007
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 08. 11. 2009. (19:45:28)
Postovi: (94)16
Sarma = la pohva - posuda
-2 = 4 - 6

PostPostano: 9:24 pon, 4. 1. 2010    Naslov: Citirajte i odgovorite

Pa neka sitnica je ipak kriva kad mi javlja da je netočno za input: '205 719'.
Meni isto izgleda da je ok, tko zna možda im je pokvaren stroj koji ispravlja te zadaće. System pause uvijek mičem prije slanja, koristim to samo pri programiranju a prije slanja izbrišem.
Pa neka sitnica je ipak kriva kad mi javlja da je netočno za input: '205 719'.
Meni isto izgleda da je ok, tko zna možda im je pokvaren stroj koji ispravlja te zadaće. System pause uvijek mičem prije slanja, koristim to samo pri programiranju a prije slanja izbrišem.


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


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

PostPostano: 10:48 pon, 4. 1. 2010    Naslov: Citirajte i odgovorite

Vec sam vise puta rekao da verifikator [b]moze[/b] imati gresku (pogotovo sto su ove godine mnogi zadaci novi, a i engine se ponesto mijenjao).

Na pocetnoj stranici aplikacije i u helpu lijepo je opisano kako se prijavljuju problemi, pa se mozete javiti tako i onda cu provjeriti. Ako greska postoji, ispravit cu ju.

Sto se konkretnog prigovora tice, Tomy007, nisi dobro procitao zadatak (nasao sam te preko mail adrese na Forumu i to vise necu raditi jer je naporno; javljajte se sa svim potrebnim podacima!).
[quote="Aplikacija za zadace"]Napišite program koji učitava prirodne brojeve a i b, te u [color=red]padajućem[/color] poretku ispisuje sve cijele brojeve koji se nalaze između a i b ([color=red]bez a i b[/color]), a u zapisu s bazom 8 imaju samo znamenke između 3 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)![/quote]
Ti ispisujes u rastucem poretku i s ukljucenim granicama.

[bg=indigo][color=white]Dakle, kad prigovarate zadatku, [b]napisite text zadatka[/b]; bez toga vam nitko ne moze dati korisnu uputu![/color][/bg] Copy/paste stvarno nije neki veliki podvig...
Vec sam vise puta rekao da verifikator moze imati gresku (pogotovo sto su ove godine mnogi zadaci novi, a i engine se ponesto mijenjao).

Na pocetnoj stranici aplikacije i u helpu lijepo je opisano kako se prijavljuju problemi, pa se mozete javiti tako i onda cu provjeriti. Ako greska postoji, ispravit cu ju.

Sto se konkretnog prigovora tice, Tomy007, nisi dobro procitao zadatak (nasao sam te preko mail adrese na Forumu i to vise necu raditi jer je naporno; javljajte se sa svim potrebnim podacima!).
Aplikacija za zadace (napisa):
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 8 imaju samo znamenke između 3 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)!

Ti ispisujes u rastucem poretku i s ukljucenim granicama.

Dakle, kad prigovarate zadatku, napisite text zadatka; bez toga vam nitko ne moze dati korisnu uputu! Copy/paste stvarno nije neki veliki podvig...



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


Pridružen/a: 08. 11. 2009. (19:45:28)
Postovi: (94)16
Sarma = la pohva - posuda
-2 = 4 - 6

PostPostano: 13:18 pon, 4. 1. 2010    Naslov: Citirajte i odgovorite

Puno hvala na pomoći, ispravio sam sad to i vjerojatno će sad biti sve ok.
Puno hvala na pomoći, ispravio sam sad to i vjerojatno će sad biti sve ok.


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


Pridružen/a: 08. 11. 2009. (19:45:28)
Postovi: (94)16
Sarma = la pohva - posuda
-2 = 4 - 6

PostPostano: 17:38 pon, 4. 1. 2010    Naslov: Citirajte i odgovorite

Ne mogu si naći grešku u dva programa sa nizovima.

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 15, 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 main (void) {

int n, x[130], i, br=0, a, b, z1, z2, a1;
scanf("%d", &n);

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

a=x[1];

if (!(a%15))
br=1;

for (i=0; i<n; i++)
if (!(x[i]%15) && (x[i]>a)) {
br=1;
a=x[i];
}


if (br) {

for (i=0; i<n; i++) {
if (x[i]<0)
b=0-x[i];
else
b=x[i];
while (b>0) {
z1=b%10;
b/=10;

}
if (a<0)
a1=0-a;
else
a1=a;
while (a1>0) {
z2=a1%10;
if (z1==z2) {printf("%d ", i); break; }
a1/=10;
}
}

}
return 0;
}[/code:1]

Napišite program koji učitava prirodni broj n≤17, te niz od n cijelih brojeva. Program treba ispisati produkt zadnjih 6 neparnih elemenata niza.
Ako neparnih brojeva ima manje od 6, ispišite produkt svih neparnih. Ako neparnih brojeva uopće nema u nizu, ispišite 1.

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

int main (void) {

int n, i, x[17], br=0;
double produkt=1;
scanf("%d", &n);

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

for (i=n-1; i>=0; i--) {

if ((x[i]%2) && (br<6)) {
produkt*=x[i];
++br;
}

}


printf("%g", produkt);

return 0;

}[/code:1]

Nadam se da će se dati nekom pogledati, već 3 sata buljim u kodove i ne razumijem što šteka. 1. se ruši na nekom test primjeru sa 130 brojeva koji mi se nije dao tipkati, ali meni je radio za dosta mojih primjera sa razumnim brojem elemenata niza, a u drugom je problem taj produkt. Uzeo sam double jer je produkt 6 velika broja prilično velik. Za test primjer koji se od mene traži "13 5310 5727 2904 8091 7237 7439 6752 3893 6901 6221 5539 8544 6993", čini mi se da jedino double može to ispisati i na kalkulatoru sam provjerio i ispada mi isto kao u programu, pa pretpostavljam da je ipak neki problem u tipu varijable ali ne znam koji tip da stavim jer za long long int isto ne radi.
Ne mogu si naći grešku u dva programa sa nizovima.

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 15, 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 main (void) {
       
    int n, x[130], i, br=0, a, b, z1, z2, a1;
    scanf("%d", &n);
   
    for (i=0; i<n; i++)
        scanf("%d", &x[i]);
   
    a=x[1];
       
    if (!(a%15))                 
       br=1;
       
    for (i=0; i<n; i++)
        if (!(x[i]%15) && (x[i]>a)) {
           br=1;           
           a=x[i];       
           }
           
           
    if (br) {
             
            for (i=0; i<n; i++) {
                if (x[i]<0)
                     b=0-x[i];
                else
                    b=x[i];     
                while (b>0) {
                      z1=b%10;
                      b/=10;
                     
                      }
                if (a<0)                                             
                   a1=0-a;
                else
                    a1=a;         
                while (a1>0) {
                      z2=a1%10;
                      if (z1==z2) {printf("%d ", i); break; }     
                      a1/=10;
                      }
             }   
                     
               }
    return 0;
}


Napišite program koji učitava prirodni broj n≤17, te niz od n cijelih brojeva. Program treba ispisati produkt zadnjih 6 neparnih elemenata niza.
Ako neparnih brojeva ima manje od 6, ispišite produkt svih neparnih. Ako neparnih brojeva uopće nema u nizu, ispišite 1.

Kod:
#include <stdio.h>

int main (void) {
   
    int n, i, x[17], br=0;
    double produkt=1;
    scanf("%d", &n);
   
    for (i=0; i<n; i++)
        scanf("%d", &x[i]);
   
    for (i=n-1; i>=0; i--) {       
     
        if ((x[i]%2) && (br<6)) {
           produkt*=x[i];
           ++br;
                }

       }   

       
    printf("%g", produkt);

    return 0;
   
}


Nadam se da će se dati nekom pogledati, već 3 sata buljim u kodove i ne razumijem što šteka. 1. se ruši na nekom test primjeru sa 130 brojeva koji mi se nije dao tipkati, ali meni je radio za dosta mojih primjera sa razumnim brojem elemenata niza, a u drugom je problem taj produkt. Uzeo sam double jer je produkt 6 velika broja prilično velik. Za test primjer koji se od mene traži "13 5310 5727 2904 8091 7237 7439 6752 3893 6901 6221 5539 8544 6993", čini mi se da jedino double može to ispisati i na kalkulatoru sam provjerio i ispada mi isto kao u programu, pa pretpostavljam da je ipak neki problem u tipu varijable ali ne znam koji tip da stavim jer za long long int isto ne radi.


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


Pridružen/a: 13. 02. 2007. (20:34:54)
Postovi: (925)16
Spol: muško
Sarma = la pohva - posuda
188 = 301 - 113
Lokacija: Hakuna Matata

PostPostano: 17:54 pon, 4. 1. 2010    Naslov: Citirajte i odgovorite

edit: dobar mi se čini i prvi, makar je teško isčitavat sve te petlje. Bilo bi ljepše sa pokojom fjom. :D

A drugi mi izgleda u redu, jedino možda je problem sa prikazom tog broja.
edit: dobar mi se čini i prvi, makar je teško isčitavat sve te petlje. Bilo bi ljepše sa pokojom fjom. Very Happy

A drugi mi izgleda u redu, jedino možda je problem sa prikazom tog broja.



_________________
"Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy Very Happy
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
vsego
Site Admin
Site Admin


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

PostPostano: 18:27 pon, 4. 1. 2010    Naslov: Citirajte i odgovorite

Kod prvog ne valja trazenje maximuma. Recimo da imas brojeve
15, 21, 3,
tebi ce maksimum ispasti 21 (jer na njega inicijaliziras [tt]a[/tt]) iako nije djeljiv s 15.

U drugom, stavi obicni [tt]int[/tt]; nisam tada racunao da ce netko uzeti u obzir da se tu ocekuje overflow, pa da ce staviti neki pametniji tip. Nagodinu cu promijeniti u sumu, ali sada ne mogu da ne zeznem nekog drugog. Kao krpez, dodat cu nekakvu napomenu. Hvala!

Fascinantno je da je to stari zadatak i do sada nitko nije skuzio propust... trecu godinu za redom. :D
Kod prvog ne valja trazenje maximuma. Recimo da imas brojeve
15, 21, 3,
tebi ce maksimum ispasti 21 (jer na njega inicijaliziras a) iako nije djeljiv s 15.

U drugom, stavi obicni int; nisam tada racunao da ce netko uzeti u obzir da se tu ocekuje overflow, pa da ce staviti neki pametniji tip. Nagodinu cu promijeniti u sumu, ali sada ne mogu da ne zeznem nekog drugog. Kao krpez, dodat cu nekakvu napomenu. Hvala!

Fascinantno je da je to stari zadatak i do sada nitko nije skuzio propust... trecu godinu za redom. Very Happy



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


Pridružen/a: 08. 11. 2009. (19:45:28)
Postovi: (94)16
Sarma = la pohva - posuda
-2 = 4 - 6

PostPostano: 7:56 uto, 5. 1. 2010    Naslov: Citirajte i odgovorite

Ispravio sam u zadatku s produktom tip u int i proradio je, ali još uvijek imam problema sa zadatkom :

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

Ispravio sam onu grešku sa inicijalizacijom. Sada sam napravio petlju koja ide po cijelom nizu i traži broj koji je djeljiv sa 15. Ako postoji broj djeljiv sa 15 inicijalizira a na taj broj i postavlja varijablu br na 1. Sljedeći dio programa se izvršava samo ako je nađen broj djeljiv sa 15 tj. ako je br==1 (if (br) { .....}). Što se tiče ove varijable j, probao sam i s njom i bez nje i uvijek javlja da je krivo. Tu varijablu sam bio stavio za svaki slučaj ako se možda ne traži indeks i tog maksimuma nego svih brojeva koji zadovoljavaju uvijet da im je prva znamenka jednaka nekoj znamenci maximuma, ali kako sam rekao probao sam i s tom varijablom i bez nje i javlja da je krivo u oba slučaja. Unutar petlje za provjeru uvijet postoje još varijable b i a1 koji su ustvari apsolutna vrijednost. A1 je apsolutna vrijednost maximuma, a b je apsolutna vrijednost člana niza na kojeg dođe petlja. Kad imam apsolutne vrijednosti tek onda vadim znamenke i vršim usporedbu. Ako je zadovoljen uvjet da je 1. znamenka od b jednaka nekoj od znamenki od a ispisujem i(printf("%d ", i). Evo to su bili komentari na program tako da bi možda bio malo jasniji svaki dio i da se možda lakše nađe bug koji ima. Sad ide ispravljena verzija zadatka :
[code:1]#include <stdio.h>

int main (void) {

int n, x[130], i, j, br=0, a, b, z1, z2, a1;
scanf("%d", &n);

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

for(i=0; i<n; i++)
if (x[i]%15==0) {
a=x[i];
br=1;
j=i; }


if (br) {

for (i=0; i<n; i++)
if ((x[i]%15==0) && (x[i]>a))
{ a=x[i];
j=i; }

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

if (i!=j) {

if (x[i]<0)
b=0-x[i];
else
b=x[i];

while (b>0) {
z1=b%10;
b/=10;
}

if (a<0)
a1=0-a;
else
a1=a;

while (a1>0) {
z2=a1%10;
if (z1==z2) {printf("%d ", i); break; }
a1/=10;
}

}

}

}

return 0;
}[/code:1]
Ispravio sam u zadatku s produktom tip u int i proradio je, ali još uvijek imam problema sa zadatkom :

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

Ispravio sam onu grešku sa inicijalizacijom. Sada sam napravio petlju koja ide po cijelom nizu i traži broj koji je djeljiv sa 15. Ako postoji broj djeljiv sa 15 inicijalizira a na taj broj i postavlja varijablu br na 1. Sljedeći dio programa se izvršava samo ako je nađen broj djeljiv sa 15 tj. ako je br==1 (if (br) { .....}). Što se tiče ove varijable j, probao sam i s njom i bez nje i uvijek javlja da je krivo. Tu varijablu sam bio stavio za svaki slučaj ako se možda ne traži indeks i tog maksimuma nego svih brojeva koji zadovoljavaju uvijet da im je prva znamenka jednaka nekoj znamenci maximuma, ali kako sam rekao probao sam i s tom varijablom i bez nje i javlja da je krivo u oba slučaja. Unutar petlje za provjeru uvijet postoje još varijable b i a1 koji su ustvari apsolutna vrijednost. A1 je apsolutna vrijednost maximuma, a b je apsolutna vrijednost člana niza na kojeg dođe petlja. Kad imam apsolutne vrijednosti tek onda vadim znamenke i vršim usporedbu. Ako je zadovoljen uvjet da je 1. znamenka od b jednaka nekoj od znamenki od a ispisujem i(printf("%d ", i). Evo to su bili komentari na program tako da bi možda bio malo jasniji svaki dio i da se možda lakše nađe bug koji ima. Sad ide ispravljena verzija zadatka :
Kod:
#include <stdio.h>

int main (void) {
       
    int n, x[130], i, j, br=0, a, b, z1, z2, a1;
    scanf("%d", &n);
   
    for (i=0; i<n; i++)
        scanf("%d", &x[i]);
   
    for(i=0; i<n; i++)
      if (x[i]%15==0) {
            a=x[i];
            br=1;
            j=i; }

   
  if (br) {   
                                                   
    for (i=0; i<n; i++)
        if ((x[i]%15==0) && (x[i]>a))           
          { a=x[i];
            j=i; }     
                             
    for (i=0; i<n; i++) {
       
             if (i!=j) {
                       
                if (x[i]<0)
                     b=0-x[i];
                else
                    b=x[i];
                       
                while (b>0) {
                      z1=b%10;
                      b/=10;                     
                      }
                     
                if (a<0)                                             
                   a1=0-a;
                else
                    a1=a;
                           
                while (a1>0) {
                      z2=a1%10;
                      if (z1==z2) {printf("%d ", i); break; }     
                      a1/=10;
                      }
                     
                  } 
                     
             }
                 
          }                 
                       
    return 0;
}


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


Pridružen/a: 13. 02. 2007. (20:34:54)
Postovi: (925)16
Spol: muško
Sarma = la pohva - posuda
188 = 301 - 113
Lokacija: Hakuna Matata

PostPostano: 12:30 uto, 5. 1. 2010    Naslov: Citirajte i odgovorite

Ovo nije dobro zbog tog j, jer provjeravaš dal je i!=j, a x[j] je jedan od brojeva kojima trebaš ispisat index ;)
Ovo nije dobro zbog tog j, jer provjeravaš dal je i!=j, a x[j] je jedan od brojeva kojima trebaš ispisat index Wink



_________________
"Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy Very Happy
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
Tomy007
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 08. 11. 2009. (19:45:28)
Postovi: (94)16
Sarma = la pohva - posuda
-2 = 4 - 6

PostPostano: 12:56 uto, 5. 1. 2010    Naslov: Citirajte i odgovorite

[quote="Luuka"]Ovo nije dobro zbog tog j, jer provjeravaš dal je i!=j, a x[j] je jedan od brojeva kojima trebaš ispisat index ;)[/quote]

Napisao samo u objašnjenju da sam probao i bez j i isto mi je javljalo da je krivo. Nakon toga sam stavio taj j zato jer sam sumnjao da je možda stvar u tome da ne žele da ispišem i indeks maximuma ali nije ni to. Ponestaje mi ideja. Pa ako neko zna gdje štaka neka kaže. Evo za ovaj put ću i dati test primjer za koji mi navodno pada program, ali je nebulozan primjer za isprobavanje jer kom se normalnom da utipkati 130 brojeva da vidi u čemu je greška. Ja sam isprobao sa dosta svojih test primjera i radilo je normalno.

Provjera zad: 1 (netočno za input: '130 19 17 -35 6 -65 93 85 -56 76 22 -1 -59
57 33 -76 27 2 43 88 -89 -58 41 24 -84 -76 -14 3 -99 17 31 77 -64 -53 -59 43 -18
-67 27 27 -91 -51 -75 -50 -95 58 -26 33 -40 -84 21 -29 -41 -39 96 -24 -14 -19 79
-12 99 9 -36 -65 57 5 78 -62 39 5 66 48 54 91 98 60 49 -28 -7 -92 -11 -87 -20 49
-25 -25 -76 62 56 -98 -51 55 12 13 90 -32 -82 67 7 58 -28 -28 5 -74 -38 3 86 -89
75 -22 -81 -37 -8 -1 -89 67 75 -64 29 31 -62 78 -15 51 -9 -26 -82 10 -59 25
-33')
Luuka (napisa):
Ovo nije dobro zbog tog j, jer provjeravaš dal je i!=j, a x[j] je jedan od brojeva kojima trebaš ispisat index Wink


Napisao samo u objašnjenju da sam probao i bez j i isto mi je javljalo da je krivo. Nakon toga sam stavio taj j zato jer sam sumnjao da je možda stvar u tome da ne žele da ispišem i indeks maximuma ali nije ni to. Ponestaje mi ideja. Pa ako neko zna gdje štaka neka kaže. Evo za ovaj put ću i dati test primjer za koji mi navodno pada program, ali je nebulozan primjer za isprobavanje jer kom se normalnom da utipkati 130 brojeva da vidi u čemu je greška. Ja sam isprobao sa dosta svojih test primjera i radilo je normalno.

Provjera zad: 1 (netočno za input: '130 19 17 -35 6 -65 93 85 -56 76 22 -1 -59
57 33 -76 27 2 43 88 -89 -58 41 24 -84 -76 -14 3 -99 17 31 77 -64 -53 -59 43 -18
-67 27 27 -91 -51 -75 -50 -95 58 -26 33 -40 -84 21 -29 -41 -39 96 -24 -14 -19 79
-12 99 9 -36 -65 57 5 78 -62 39 5 66 48 54 91 98 60 49 -28 -7 -92 -11 -87 -20 49
-25 -25 -76 62 56 -98 -51 55 12 13 90 -32 -82 67 7 58 -28 -28 5 -74 -38 3 86 -89
75 -22 -81 -37 -8 -1 -89 67 75 -64 29 31 -62 78 -15 51 -9 -26 -82 10 -59 25
-33')


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


Pridružen/a: 11. 09. 2008. (10:54:06)
Postovi: (370)16
Sarma = la pohva - posuda
-29 = 108 - 137
Lokacija: Pula

PostPostano: 14:29 uto, 5. 1. 2010    Naslov: Citirajte i odgovorite

cini mi se da, iako jako kompliciras, i imas dosta nepotrebnih stvari

npr, tokom samog ucitavanja niza mozes nac najveceg djeljivog sa 15
svaki broj koji ucitas nakon sta si vidio dal je to ili nije najveci djeljiv sa 15 mozes pomnozit sa -1 ako je negativan

kasnije mozes maximum pomnozit sa -1 ako treba
tako da nemas provjere

i sad se vise ne sjecam...
ono tipa 0-a je ist onako... nepotrebno pisat 0

stvar radi, samo makni ono i!=j

eventualno ti ne radi jer nemas #include <stdlib.h>, neznam sta se sad tamo nalazi, al mozda bi po standardu trebalo bit, pa nadodaj to i kazem, makni za i!=j....
trebalo bi radit, za onaj primjer koji si naveo ti radi kad maknes...
cini mi se da, iako jako kompliciras, i imas dosta nepotrebnih stvari

npr, tokom samog ucitavanja niza mozes nac najveceg djeljivog sa 15
svaki broj koji ucitas nakon sta si vidio dal je to ili nije najveci djeljiv sa 15 mozes pomnozit sa -1 ako je negativan

kasnije mozes maximum pomnozit sa -1 ako treba
tako da nemas provjere

i sad se vise ne sjecam...
ono tipa 0-a je ist onako... nepotrebno pisat 0

stvar radi, samo makni ono i!=j

eventualno ti ne radi jer nemas #include <stdlib.h>, neznam sta se sad tamo nalazi, al mozda bi po standardu trebalo bit, pa nadodaj to i kazem, makni za i!=j....
trebalo bi radit, za onaj primjer koji si naveo ti radi kad maknes...



_________________
Mario Berljafa
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Tomy007
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 08. 11. 2009. (19:45:28)
Postovi: (94)16
Sarma = la pohva - posuda
-2 = 4 - 6

PostPostano: 16:15 uto, 5. 1. 2010    Naslov: Citirajte i odgovorite

[quote="Gino"]cini mi se da, iako jako kompliciras, i imas dosta nepotrebnih stvari

npr, tokom samog ucitavanja niza mozes nac najveceg djeljivog sa 15
svaki broj koji ucitas nakon sta si vidio dal je to ili nije najveci djeljiv sa 15 mozes pomnozit sa -1 ako je negativan

kasnije mozes maximum pomnozit sa -1 ako treba
tako da nemas provjere

i sad se vise ne sjecam...
ono tipa 0-a je ist onako... nepotrebno pisat 0

stvar radi, samo makni ono i!=j

eventualno ti ne radi jer nemas #include <stdlib.h>, neznam sta se sad tamo nalazi, al mozda bi po standardu trebalo bit, pa nadodaj to i kazem, makni za i!=j....
trebalo bi radit, za onaj primjer koji si naveo ti radi kad maknes...[/quote]

Evo ispravio sam sve i opet dobivam u mailu ovu poruku : Provjera zad: 1 (netočno za input: '130 15 -6 -22 0 8 -2 -70 41 14 67 -73 -58
-80 -90 32 -39 32 42 24 1 35 99 -9 -100 -36 72 5 23 98 -71 6 12 24 85 -88 -69
-18 -58 72 97 -91 99 -61 -71 -91 71 -9 41 13 -85 -58 -52 -87 34 -52 -22 5 54
-100 2 84 7 -86 7 -9 -74 39 74 -31 10 71 -22 9 -91 8 19 81 99 -41 -7 -86 2 41
-73 -65 90 6 40 44 7 -59 27 -87 -44 -67 5 -18 73 -21 52 -18 -51 -71 92 -42 38 10
-62 36 69 32 51 -29 -28 78 6 -38 -16 -55 -95 91 -13 33 -97 43 66 9 -75 38 88') . Ovo je sad kod koji sam poslao :
[code:1]#include <stdio.h>

int main (void) {

int n, x[130], i, br=0, a, a1, b, z1, z2;
scanf("%d", &n);

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

scanf("%d", &x[i]);
if (x[i]%15==0) {
a=x[i];
br=1;
}

}


if (br) {

for (i=0; i<n; i++)
if ((x[i]%15==0) && (x[i]>a))
a=x[i];


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


if (x[i]<0)
b=-1*x[i];
else
b=x[i];


while (b>0) {
z1=b%10;
b/=10;
}

if (a<0)
a1=-1*a;
else
a1=a;

while (a1>0) {
z2=a1%10;
if (z1==z2) {printf("%d ", i); break; }
a1/=10;
}

}


}

return 0;
}[/code:1]
Gino (napisa):
cini mi se da, iako jako kompliciras, i imas dosta nepotrebnih stvari

npr, tokom samog ucitavanja niza mozes nac najveceg djeljivog sa 15
svaki broj koji ucitas nakon sta si vidio dal je to ili nije najveci djeljiv sa 15 mozes pomnozit sa -1 ako je negativan

kasnije mozes maximum pomnozit sa -1 ako treba
tako da nemas provjere

i sad se vise ne sjecam...
ono tipa 0-a je ist onako... nepotrebno pisat 0

stvar radi, samo makni ono i!=j

eventualno ti ne radi jer nemas #include <stdlib.h>, neznam sta se sad tamo nalazi, al mozda bi po standardu trebalo bit, pa nadodaj to i kazem, makni za i!=j....
trebalo bi radit, za onaj primjer koji si naveo ti radi kad maknes...


Evo ispravio sam sve i opet dobivam u mailu ovu poruku : Provjera zad: 1 (netočno za input: '130 15 -6 -22 0 8 -2 -70 41 14 67 -73 -58
-80 -90 32 -39 32 42 24 1 35 99 -9 -100 -36 72 5 23 98 -71 6 12 24 85 -88 -69
-18 -58 72 97 -91 99 -61 -71 -91 71 -9 41 13 -85 -58 -52 -87 34 -52 -22 5 54
-100 2 84 7 -86 7 -9 -74 39 74 -31 10 71 -22 9 -91 8 19 81 99 -41 -7 -86 2 41
-73 -65 90 6 40 44 7 -59 27 -87 -44 -67 5 -18 73 -21 52 -18 -51 -71 92 -42 38 10
-62 36 69 32 51 -29 -28 78 6 -38 -16 -55 -95 91 -13 33 -97 43 66 9 -75 38 88') . Ovo je sad kod koji sam poslao :
Kod:
#include <stdio.h>

int main (void) {
       
    int n, x[130], i, br=0, a, a1, b, z1, z2;
    scanf("%d", &n);
   
    for (i=0; i<n; i++) {
       
        scanf("%d", &x[i]);
              if (x[i]%15==0) {
                    a=x[i];
                    br=1;
                    }
                               
                         }       

   
  if (br) {   
                                                   
    for (i=0; i<n; i++)
        if ((x[i]%15==0) && (x[i]>a))           
           a=x[i];                 
               
                             
    for (i=0; i<n; i++) {
       
                       
                if (x[i]<0)
                   b=-1*x[i];
                else
                    b=x[i];   
                       
                       
                while (b>0) {
                      z1=b%10;
                      b/=10;                     
                      }
                     
                if (a<0)
                    a1=-1*a;
                else
                    a1=a;
                                                         
                while (a1>0) {
                      z2=a1%10;
                      if (z1==z2) {printf("%d ", i); break; }     
                      a1/=10;
                      }
                     
                  } 
                     
                 
          }
                                           
    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: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 17:48 uto, 5. 1. 2010    Naslov: Citirajte i odgovorite

Broj 0 ima jednu znamenku (nulu), a ti za njega preskocis cijelu petlju, a time preskocis i postavljanje varijable [tt]z1[/tt].

Tome ti sluzi ispis na cemu je stvar pala: pogledas koji je maximum (pomocni ispis koji mozes ubaciti dok doma testiras program) i onda prodjes kroz niz i vidis sto ne ispisuje, a trebao bi ili sto ispisuje, a ne bi trebao. Unos 130 brojeva nije neki problem (copy/paste ili - dok isprobavas i trazis gresku - hardkodiras u program).

Inace, trazenje prve znamenke je lakse ovako izvesti:
[code:1]int z1 = (x[i] < 0 ? -x[i] : x[i]);
while (z1 >= 10) z1 /= 10;[/code:1]
Dakle, dijelis s 10 dok ne padnes na manje od dvije znamenke. Ljepsi kod, a ujedno radi i za nulu.
Broj 0 ima jednu znamenku (nulu), a ti za njega preskocis cijelu petlju, a time preskocis i postavljanje varijable z1.

Tome ti sluzi ispis na cemu je stvar pala: pogledas koji je maximum (pomocni ispis koji mozes ubaciti dok doma testiras program) i onda prodjes kroz niz i vidis sto ne ispisuje, a trebao bi ili sto ispisuje, a ne bi trebao. Unos 130 brojeva nije neki problem (copy/paste ili - dok isprobavas i trazis gresku - hardkodiras u program).

Inace, trazenje prve znamenke je lakse ovako izvesti:
Kod:
int z1 = (x[i] < 0 ? -x[i] : x[i]);
while (z1 >= 10) z1 /= 10;

Dakle, dijelis s 10 dok ne padnes na manje od dvije znamenke. Ljepsi kod, a ujedno radi i za nulu.



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


Pridružen/a: 01. 10. 2009. (19:28:31)
Postovi: (AC)16
Spol: muško
Sarma = la pohva - posuda
= 15 - 8
Lokacija: Somewhere in time

PostPostano: 18:16 uto, 5. 1. 2010    Naslov: Citirajte i odgovorite

jel stvarno toliko bitno da se makne system("pause")?? dosad sam slao zadatke s njim i nije bilo problema...
jel stvarno toliko bitno da se makne system("pause")?? dosad sam slao zadatke s njim i nije bilo problema...



_________________
You'll take my life but I'll take yours too
You'll fire your musket but I'll run you through
So when you're waiting for the next attack
You'd better stand there's no turning back
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail Posjetite Web stranice MSNM
Tomy007
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 08. 11. 2009. (19:45:28)
Postovi: (94)16
Sarma = la pohva - posuda
-2 = 4 - 6

PostPostano: 18:50 uto, 5. 1. 2010    Naslov: Citirajte i odgovorite

[quote="vsego"]Broj 0 ima jednu znamenku (nulu), a ti za njega preskocis cijelu petlju, a time preskocis i postavljanje varijable [tt]z1[/tt].

Tome ti sluzi ispis na cemu je stvar pala: pogledas koji je maximum (pomocni ispis koji mozes ubaciti dok doma testiras program) i onda prodjes kroz niz i vidis sto ne ispisuje, a trebao bi ili sto ispisuje, a ne bi trebao. Unos 130 brojeva nije neki problem (copy/paste ili - dok isprobavas i trazis gresku - hardkodiras u program).

Inace, trazenje prve znamenke je lakse ovako izvesti:
[code:1]int z1 = (x[i] < 0 ? -x[i] : x[i]);
while (z1 >= 10) z1 /= 10;[/code:1]
Dakle, dijelis s 10 dok ne padnes na manje od dvije znamenke. Ljepsi kod, a ujedno radi i za nulu.[/quote]

Hehehe puno hvala. Ajme nisam do sad znao kolko jedna mala nula može našteti i koliko se možeš iživcirati zbog jedne nule. Cijeli dan razmišljam u ovom zadatku, razbijam glavu tražeći grešku, a greška je u jednoj maloj usamljenoj nuli :P. Zadatak je sada točan i napokon je i peta zadaća u potpunosti točna. Jupiii ! :D
vsego (napisa):
Broj 0 ima jednu znamenku (nulu), a ti za njega preskocis cijelu petlju, a time preskocis i postavljanje varijable z1.

Tome ti sluzi ispis na cemu je stvar pala: pogledas koji je maximum (pomocni ispis koji mozes ubaciti dok doma testiras program) i onda prodjes kroz niz i vidis sto ne ispisuje, a trebao bi ili sto ispisuje, a ne bi trebao. Unos 130 brojeva nije neki problem (copy/paste ili - dok isprobavas i trazis gresku - hardkodiras u program).

Inace, trazenje prve znamenke je lakse ovako izvesti:
Kod:
int z1 = (x[i] < 0 ? -x[i] : x[i]);
while (z1 >= 10) z1 /= 10;

Dakle, dijelis s 10 dok ne padnes na manje od dvije znamenke. Ljepsi kod, a ujedno radi i za nulu.


Hehehe puno hvala. Ajme nisam do sad znao kolko jedna mala nula može našteti i koliko se možeš iživcirati zbog jedne nule. Cijeli dan razmišljam u ovom zadatku, razbijam glavu tražeći grešku, a greška je u jednoj maloj usamljenoj nuli Razz. Zadatak je sada točan i napokon je i peta zadaća u potpunosti točna. Jupiii ! Very Happy


[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, 3 ... 16, 17, 18  Sljedeće
Stranica 1 / 18.

 
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