C program - greška kad dođe do % u printf

poruka: 409
|
čitano: 99.231
|
moderatori: XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf

koliko se sjećam, smilevski je rekao da funkcija može vratiti samo jednu vrijednost. baš je na prošlom labosu netko pitao jel može vratiti više vrijednosti, on je rekao nikako, samo jednu. eh sad, jel pri tome mislio da u našim zadatcima smije/mora vraćat samo jednu, ili je to tako kod c-a. nek objasni netko iskusniji :)

Atomska bubamara
16 godina
odjavljen
offline
RE: C program - greška kad dođe do % u printf
vexx5555 kaže...

Može li mi netko objasniti kako se radi funkcija koja u main vraća više vrijednosti različitih varijabli? Funkcija treba ići iz maina (može i ispred, ali mi je ovo važnije).

Funkciji proslijediš pointer na memorijsku lokaciju na koju mora spremiti vrijednost koju vraća. To radiš za svaku vrijednost.

 

#include <stdio.h>void inc_count(int *count_ptr){(*count_ptr)++;}int main(){int count = 0;while (count < 10)  inc_count(&count);return (0);}
Da funkciji inc_count prosljeđuješ int count, ovo bi bila beskonačna petlja, ali ti u ovom slučaju prosljeđuješ pokazivač na varijablu count. Na taj način funkcija može mijenjati vrijednost varijable na koju pokazivač pokazuje.

Heart: _/\_/\_/\_/\_/\_/\_/\_/\_ Brain: __________________________
16 godina
odjavljen
offline
RE: C program - greška kad dođe do % u printf
jurluk kaže...

koliko se sjećam, smilevski je rekao da funkcija može vratiti samo jednu vrijednost. baš je na prošlom labosu netko pitao jel može vratiti više vrijednosti, on je rekao nikako, samo jednu. eh sad, jel pri tome mislio da u našim zadatcima smije/mora vraćat samo jednu, ili je to tako kod c-a. nek objasni netko iskusniji :)

 A nama Mia nije ništa rekla. Koja je to *#$%!*#.

MrBlc kaže...
vexx5555 kaže...

Može li mi netko objasniti kako se radi funkcija koja u main vraća više vrijednosti različitih varijabli? Funkcija treba ići iz maina (može i ispred, ali mi je ovo važnije).

Funkciji proslijediš pointer na memorijsku lokaciju na koju mora spremiti vrijednost koju vraća. To radiš za svaku vrijednost.

 

#include <stdio.h>void inc_count(int *count_ptr){(*count_ptr)++;}int main(){int count = 0;while (count < 10)  inc_count(&count);return (0);}
Da funkciji inc_count prosljeđuješ int count, ovo bi bila beskonačna petlja, ali ti u ovom slučaju prosljeđuješ pokazivač na varijablu count. Na taj način funkcija može mijenjati vrijednost varijable na koju pokazivač pokazuje.

 Lijepo je to. Još kada bi razumio to bilo bi super.

Ukoliko vam je mobitel u kvaru, ili ga želite prodati, zovite ovaj broj- 091 172 6697
16 godina
odjavljen
offline
RE: C program - greška kad dođe do % u printf

Prouči malo: http://publications.gbdirect.co.uk/c_book/chapter5/pointers.html

 

Ukratko, pokazivač (pointer) je varijabla koja sadrži adresu varijable. Kada ti pozoveš funkciju, C za svaki proslijeđeni argument napravi novu varijablu istog tipa i u nju kopira vrijednost orginalne varijable u trenutku pozivanja funkcije. Unutar funkcije se koristi ta nova varijabla, tako da bilo koja promjena vrijednosti te varijable postoji samo unutar funkcije.

 

Međutim, kad proslijediš pointer ti funkciji kažeš "varijabla je na toj i toj memorijskoj lokaciji" i onda preko pointera funkcija pristupa toj memorijskoj lokaciji.

 

Jedna mala analogija:

Ja sam gluh, a ti nijem. Ja tebe nešto mogu pitati, ali ne mogu dobiti odgovor. Međutim, ako ja tebi uz pitanje pošaljem i informaciju kako mi možeš odgovoriti (napiši mi SMS na taj i taj broj), ja ipak mogu dobiti povratnu informaciju. Broj na koji ćeš mi poslati SMS je pointer.

Heart: _/\_/\_/\_/\_/\_/\_/\_/\_ Brain: __________________________
16 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf
vexx5555 kaže...

Može li mi netko objasniti kako se radi funkcija koja u main vraća više vrijednosti različitih varijabli? Funkcija treba ići iz maina (može i ispred, ali mi je ovo važnije).

Vratiti više različitih ili istih varijabli znači npr. jedan int jedan float i jedan double se ne radi kao kada funkcija vrača samo jednu vrijednost

preko return-a.

Znači nešto kao "int float double mojafunkcija(int,float,double)" pa return i,f,d ne funkcionira.

 

Ali postoji nekoliko načina kako izvesti nešto tako.

1. Možeš koristiti strukturu ili klasu

http://pastebin.com/6hgr8HxA

 

2.Pokazivače

http://pastebin.com/mcWMKn9C

 

3.Reference

http://pastebin.com/wEP69Mur

 

Doslovno vračanje više varijabli preko returna je nemoguće.

 

 

All religions are the same: religion is basically guilt, with different holidays.
Poruka je uređivana zadnji put ned 5.12.2010 19:31 (drnde).
17 godina
offline
C program - greška kad dođe do % u printf

Ako želiš da funkcija vrati više vrijednosti u funkciju iz koje se poziva to postižeš preko pokazivača, dakle takva funkcija ne vraća

vrijednost u pozivajuću funkciju, nego se pokazivačima povežu varijable funkcije iz koje se pozivanje vrši i pozivajuće funkcije, pošto su

varijable povezane pokazivačima, promjena u funkciji koju si pozvao rezultira promjenom varijable u pozivajućoj funkciji

 

 

#include<stdio.h>

void StaviNovuVrijednost(int *a, int *b)  // argumenti funkcije su pokazivači na varijable a i b u main funkciji
{
       *a = 8;      // pokazivačima je napravljena veza između varijabli a i b u ovoj funkciji
       *b = 10;     // i varijabli a i b u glavnoj funkciji tako da varijable a i b u glavnoj
}                    // funkciji dobijaju ove vrijednosti jer ovi pokazivači pokazuju na a i b u glavnoj funkciji

int main()
{
    int a = 5;
    int b = 3;
    StaviNovuVrijednost(&a, &b);    // predaju se adrese varijabli kao argumenti funkcije
    printf("a = %d\nb = %d", a, b);   // ispisuje vrjednosti pridružene u funkciji StaviNovuVrijednost
}

Poruka je uređivana zadnji put ned 5.12.2010 19:25 (Floki).
 
0 0 hvala 0
17 godina
offline
C program - greška kad dođe do % u printf

Vi sa TVZ-a, već sam vam napomenuo, svi zadaci koje radite napravljeni su poput ovih ovdje

http://www.skolskaknjiga.hr/hrv/page.asp?item=021154&act=add2basket

Ista škola ,

 
0 0 hvala 0
16 godina
odjavljen
offline
C program - greška kad dođe do % u printf

Današnja boleština od zadatka je:

 

Napisati C program koji simulira igru potapanja brodova.
Napisati funkciju koja u dvodimenzionalno polje dimenzija 3x3 upisuje nasumične brojeve iz
raspona (0, 1). Tako kreirano polje predstavlja ploču za igru. Pravilo koje pri tome treba uzeti
u obzir je da vrijednost 1 označava mjesto gdje se nalazi brod, a 0 prazno mjesto. Također,
smatra se da jedan brod zauzima samo jedno mjesto u polju. Funkcija vraća broj generiranih
brodova koje je potrebno pogoditi, te je ovaj podatak potrebno ispisati na početku igre.
Od korisnika se zatim traži uzastopni unos mjesta na ploči (željenog stupca i retka) koje se
želi pogoditi, te ispis trenutačnog stanja polja. Ako je brod pogođen, u polje na odgovarajuće
mjesto potrebno je upisati znak ‘P’, a za svaki promašaj znak ‘X’.
Provjeru pogotka i upis novih vrijednosti u polje potrebno je realizirati u zasebnoj funkciji.
Pri tome treba voditi računa o gore navedenim oznakama za promašaj i pogodak.
Ispis polja potrebno je realizirati u zasebnoj funkciji. Pri ispisu sve elemente polja koji sadrže
vrijednost 0 ili 1 potrebno je ispisati zamjenskim znakom ‘+’ kako se ne bi otkrile pozicije
brodova.
Sve funkcije pozivaju se iz glavne funkcije.
Cilj igre je potopiti sve brodove. Kada su svi brodovi potopljeni igra se prekida i ispisuje
poruka o kraju igre.

Primjer izvođenja programa:
Broj brodova koje treba potopiti: 2
   1 2 3
1 + + +
2 + + +
3 + + +

Unesite željeno mjesto pogotka: 1 2
POGODAK!
   1 2 3
1 + P +
2 + + +
3 + + +

Unesite željeno mjesto pogotka: 3 3
PROMAŠAJ! :(
   1 2 3
1 + P +
2 + + +
3 + + X

 

 

Pao sam na guzicu kada sam ovo vidio. Što da radim?

Ukoliko vam je mobitel u kvaru, ili ga želite prodati, zovite ovaj broj- 091 172 6697
Moj PC  
0 0 hvala 0
16 godina
odjavljen
offline
C program - greška kad dođe do % u printf

Dečki pomagajte nemam blage veze o ovom.

Ovo sam do sada napisao:

 

#include <stdio.h>
#include <stdlib.h>
#define DIMENZIJA 3
#define DIMENZIJA2 3

 

int *ptr_polje;

 

srand((unsigned)time(NULL));

 

int ploca(int a, int b);
{
  int polje[DIMENZIJA][DIMENZIJA2];
  for (a=0;a<DIMEZIJA;a++){
                           for (a=b;b<DIMEZIJA;b++){
                                                    polje[a][b]=(rand()%999);
                                                    printf("\n polje je:%d\n",polje[a][b]);
                                                    }
                           }
   ptr_polje=polje;
   return ptr_polje;
}                       
                          
int main()
{
 
 
 
  system("PAUSE"); 
  return 0;
}

Ukoliko vam je mobitel u kvaru, ili ga želite prodati, zovite ovaj broj- 091 172 6697
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf

e kolega da pitam koju verziju C-a koristis? jer meni to neradi u express 2010 verziji

ja sam mala gljiva.... svinja je kraljica životinja dok ne probam lava
16 godina
odjavljen
offline
RE: C program - greška kad dođe do % u printf
munjovoz kaže...

e kolega da pitam koju verziju C-a koristis? jer meni to neradi u express 2010 verziji

 Misliš na programsko sučelje?

 

Koristim Dev C++. 3000x bolji od Codeblocksa.

Ukoliko vam je mobitel u kvaru, ili ga želite prodati, zovite ovaj broj- 091 172 6697
14 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf

a joj zast skole ne koriste c sa ljestvama il bar rade u c-u od microsofta(ovak i onak besplatan)

ja sam mala gljiva.... svinja je kraljica životinja dok ne probam lava
16 godina
odjavljen
offline
RE: C program - greška kad dođe do % u printf
munjovoz kaže...

a joj zast skole ne koriste c sa ljestvama il bar rade u c-u od microsofta(ovak i onak besplatan)

 Koje škole? Ja sam na fakultetu. :)

 

Uostalom, naš profesor ne voli Micro$oft i njihove izmišljotine. Ja radije preferiram C++ nego C#.

Ukoliko vam je mobitel u kvaru, ili ga želite prodati, zovite ovaj broj- 091 172 6697
14 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf
vexx5555 kaže...
munjovoz kaže...

a joj zast skole ne koriste c sa ljestvama il bar rade u c-u od microsofta(ovak i onak besplatan)

 Koje škole? Ja sam na fakultetu. :)

 

Uostalom, naš profesor ne voli Micro$oft i njihove izmišljotine. Ja radije preferiram C++ nego C#.

a jebiga.... zast nebi volio microsoft ak je to od njih aplikacija? i c sa plusevima i c sa ljestvama i sql database i velika vecina stvari koje internet aplikacije koriste ( ni java nije potpuni exception)

koristim c sa ljestvama jer se u tom razvijaju aplikacije, to je vise developer c, ovaj c++ je vise user friendly okruzje... u c sa ljestvama nema printf scanf, jednostavnija je deklaracija, ispis, nema srand i time nego se mora drugacije rjesit... lakse ak se mene pita, manje ima opcija (kljucnih rijeci) i nemoras toliko komplicirat algoritam..

ja sam mala gljiva.... svinja je kraljica životinja dok ne probam lava
14 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf

zapravo, kad bolje promislim, c sa ljestvama ima vise keywords nego c++ i moras znat di se sto koristi... =D

al svejedno c++ se nepotrebno komplicira... printf i scanf funkcije i matematicke funkcije unutar programa se mogu strpat u istu naredbu dok bi to u c-u bilo 4 reda....

ja sam mala gljiva.... svinja je kraljica životinja dok ne probam lava
Poruka je uređivana zadnji put sri 8.12.2010 11:43 (munjovoz).
16 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf
munjovoz kaže...

zapravo, kad bolje promislim, c sa ljestvama ima vise keywords nego c++ i moras znat di se sto koristi... =D

al svejedno c++ se nepotrebno komplicira... printf i scanf funkcije i matematicke funkcije unutar programa se mogu strpat u istu naredbu dok bi to u c-u bilo 4 reda....

Jao molim te stani, ako već nemaš pojma o čemu pričaš bar nemoj soliti pamet ljudima okolo.

C s ljestvama, keywordsi !? {#}

All religions are the same: religion is basically guilt, with different holidays.
16 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf
vexx5555 kaže...

Današnja boleština od zadatka je:

...

kolega imašovdje rješenje Nevinasce

 

i btw, može netko ovo riješit ako nije problem, ili dat neke smjernice? Sramim se

Atomska bubamara
14 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf
drnde kaže...
munjovoz kaže...

zapravo, kad bolje promislim, c sa ljestvama ima vise keywords nego c++ i moras znat di se sto koristi... =D

al svejedno c++ se nepotrebno komplicira... printf i scanf funkcije i matematicke funkcije unutar programa se mogu strpat u istu naredbu dok bi to u c-u bilo 4 reda....

Jao molim te stani, ako već nemaš pojma o čemu pričaš bar nemoj soliti pamet ljudima okolo.

C s ljestvama, keywordsi !? {#}

da znam da pricam budalastine, nemogu stavit znak ljestve jer mi tipka neradi, keywordse kazem a mislim na naredbe koje mozes radit u c-u

 

ja sam mala gljiva.... svinja je kraljica životinja dok ne probam lava
14 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf
jurluk kaže...
vexx5555 kaže...

Današnja boleština od zadatka je:

...

kolega imašovdje rješenje Nevinasce

 

i btw, može netko ovo riješit ako nije problem, ili dat neke smjernice? Sramim se

i ne, ovo ne radi, treba se prepravit jer nemam c koji radi sa vašom verzijom.... ali algoritam valja pa bi moralo radit kak spada

pokazivaci za ovo nisu potrebni, da se rjesit i bez toga... vracanje vrijednosti isto netreba jer radi na brojanju

i ovo ima gresaka, nemam blage kak se pravi taj random pa me nemojte razapinjat zbog toga.... time(null) i to vrlo vjerojatno ne radi al pokazuje kak bi trebalo radit

 

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 main()
{
 int a[5][5], b, c, i, j, e, f, g, h;

  {   srand ((unsigned) time(NULL));

for (i=1;i<=5;i++)       //matrica iliti polje pocinje sa brojem 1 ne sa brojem 0, zato je i=1 tako da nema kordinata 0x nesta ili nesta x0
    for(j=1;j<=5;j++){
          a[i][j]=rand()%2; //sad neznam kak napravit random za ovaj vrag... napamet sam radio, treba se prepravit
        printf("\n polje je:%d\n",a[i][j]);
          if(a[i][j]=='1')       //brojac koliko je random napravio brodova, tj koliko ih treba potopit
           e++;
    }
    printf("\nBroj brodova koje se treba potopiti:%d",e);                      
    printf("Unesite željeno mjesto pogotka: ");
    scanf("%d %d", &b, &c);
  }
 
    for (i=1;i<=5;i++)
       for(j=1;j<=5;j++)
          if(a[i][j]=='1')&&(b==i)&&(c==j){
             printf("\nPogodak!"); f++;}       //f je brojac
          else {printf("\nPromašaj!"); g++;}    //g je isti vrag

          h=g+f;       //h je sveukupni pokusaji, f broj pogodaka, g broj promasaja

          printf("\nBroj pokušaja:%d\nBroj pogodaka:%d\nBroj promašaja:%d", h, f, g);
          if(e==f) break;       //ovo vam je izlaz iz igre, prekine kada se pogodi jednak broj brodova koliko ih je random napravio
                             //e broji broj brodova, kad broj pogodaka bude isti kao broj brodova, igra je gotova
                             //i ovo je samo ugrubo, nemam verziju c-a koja ovo moze pokrenit, napamet radio
  system("PAUSE");
  return 0;
}

ja sam mala gljiva.... svinja je kraljica životinja dok ne probam lava
Poruka je uređivana zadnji put sri 8.12.2010 14:36 (munjovoz).
14 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf

zaboravih graficko sucelje... sec pravim...

ja sam mala gljiva.... svinja je kraljica životinja dok ne probam lava
16 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf
jurluk kaže...
vexx5555 kaže...

Današnja boleština od zadatka je:

...

kolega imašovdje rješenje Nevinasce

 

i btw, može netko ovo riješit ako nije problem, ili dat neke smjernice? Sramim se

Neznam u čemu ti je problem pa sam si postao rješenje ? Jedina razlika je što kod tebe matrica 5x5

a u prvom zadatku 3x3.

 

Al eto da imate jos jedno rješenje obadvoje, za promjenu dimenzije samo je potrebno promijeniti konstantu DIM

na pocetku, tebi treba biti 5 a vexu 3.

http://pastebin.com/ufc35eDk

munjovoz kaže...
drnde kaže...
munjovoz kaže...

zapravo, kad bolje promislim, c sa ljestvama ima vise keywords nego c++ i moras znat di se sto koristi... =D

al svejedno c++ se nepotrebno komplicira... printf i scanf funkcije i matematicke funkcije unutar programa se mogu strpat u istu naredbu dok bi to u c-u bilo 4 reda....

Jao molim te stani, ako već nemaš pojma o čemu pričaš bar nemoj soliti pamet ljudima okolo.

C s ljestvama, keywordsi !? {#}

da znam da pricam budalastine, nemogu stavit znak ljestve jer mi tipka neradi, keywordse kazem a mislim na naredbe koje mozes radit u c-u

 

Nema veze s c "ljestvama" ni naredbama (ilitiga keywordsima) nego da po oneme što si napisao u svoja 3 posta očito nemaš

dovoljno znanja o programiranju, programskim jezicima i razvojnim okruženjima opčenito da bi mogao nešto smisleno o tome pričati

ali si svejedno došao tu pametovati.

 

 

 

 

All religions are the same: religion is basically guilt, with different holidays.
Poruka je uređivana zadnji put sri 8.12.2010 14:46 (drnde).
14 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf
drnde kaže...
jurluk kaže...
vexx5555 kaže...

Današnja boleština od zadatka je:

...

kolega imašovdje rješenje Nevinasce

 

i btw, može netko ovo riješit ako nije problem, ili dat neke smjernice? Sramim se

Neznam u čemu ti je problem pa sam si postao rješenje ? Jedina razlika je što kod tebe matrica 5x5

a u prvom zadatku 3x3.

 

Al eto da imate jos jedno rješenje obadvoje, za promjenu dimenzije samo je potrebno promijeniti konstantu DIM

na pocetku, tebi treba biti 5 a vexu 3.

http://pastebin.com/ufc35eDk

munjovoz kaže...
drnde kaže...
munjovoz kaže...

zapravo, kad bolje promislim, c sa ljestvama ima vise keywords nego c++ i moras znat di se sto koristi... =D

al svejedno c++ se nepotrebno komplicira... printf i scanf funkcije i matematicke funkcije unutar programa se mogu strpat u istu naredbu dok bi to u c-u bilo 4 reda....

Jao molim te stani, ako već nemaš pojma o čemu pričaš bar nemoj soliti pamet ljudima okolo.

C s ljestvama, keywordsi !? {#}

da znam da pricam budalastine, nemogu stavit znak ljestve jer mi tipka neradi, keywordse kazem a mislim na naredbe koje mozes radit u c-u

 

Nema veze s c "ljestvama" ni naredbama (ilitiga keywordsima) nego da po oneme što si napisao u svoja 3 posta očito nemaš

dovoljno znanja o programiranju, programskim jezicima i razvojnim okruženjima opčenito da bi mogao nešto smisleno o tome pričati

ali si svejedno došao tu pametovati.

 

 

 

 

probah sam rjesit... onak bez uvrede nisam te pitao dal imam dost znanja nit sam dosao pametovat, imam bipolarni poremecaj pa mi je nekad tesko slozit smislenu recenicu al glavno da ti mozes pricat drugima da nist nevaljaju, ja se bar trudim

di je tu grijeh terat svoje da mi je znat... sta sad fali ak ja hocu rjesit drugacije... sam ti stavljaj palac dole jer bez toga linkanja rjesenja i prigovaranja drugim kak nist ne valjaju nebi imao osjecaj zadovoljstva kak si najbolji

ja sam mala gljiva.... svinja je kraljica životinja dok ne probam lava
Poruka je uređivana zadnji put sri 8.12.2010 14:59 (munjovoz).
16 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf
munjovoz kaže...
drnde kaže...

Nema veze s c "ljestvama" ni naredbama (ilitiga keywordsima) nego da po oneme što si napisao u svoja 3 posta očito nemaš

dovoljno znanja o programiranju, programskim jezicima i razvojnim okruženjima opčenito da bi mogao nešto smisleno o tome pričati

ali si svejedno došao tu pametovati.

 

probah sam rjesit... onak bez uvrede nisam te pitao dal imam dost znanja nit sam dosao pametovat, imam bipolarni poremecaj pa mi je nekad

tesko slozit smislenu recenicu al glavno da ti mozes pricat drugima da nist nevaljaju, ja se bar trudim di je tu grijeh terat svoje da mi je znat...

 

sta sad fali ak ja hocu rjesit drugacije... sam ti stavljaj palac dole jer bez toga linkanja rjesenja i prigovaranja drugim kak nist ne valjaju nebi imao osjecaj zadovoljstva kak si najbolji

Daj nebudi toliko sentimentalan, niti sam rekao da ništa nevaljaš (?) niti sam kritizirao tvoje rješenje ili pokušaj rješenja.

Kritizirao sam tvoje izjave što se tiče razvojnih okruženja i programskih jezika jer jednostavno nisu na mjestu te si zapravo

u prva 3 posta samo spamao bezveze.

All religions are the same: religion is basically guilt, with different holidays.
16 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf
drnde kaže...
Neznam u čemu ti je problem pa sam si postao rješenje ? Jedina razlika je što kod tebe matrica 5x5

a u prvom zadatku 3x3.

 

Al eto da imate jos jedno rješenje obadvoje, za promjenu dimenzije samo je potrebno promijeniti konstantu DIM

na pocetku, tebi treba biti 5 a vexu 3.

http://pastebin.com/ufc35eDk

aaa, moj fail, jer sam žurio pa nisam svoj zadatak ni gledao. sad vidim da su potpuno indentični, samo je razlika u veličini polja Sramim se

Atomska bubamara
16 godina
neaktivan
offline
C program - greška kad dođe do % u printf

evo malo sam modificirao onaj kod sa onog foruma, i naizgled je sve dobro, samo što na kraju kad pogodim sve brodove, ne ispiše "Igra je gotova". gdje je greška? ja ju nigdje ne vidim Neodlucan

 

edit: našao sam grešku. sad je sve dobro

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define DIM 5

int fja1 (char P[DIM][DIM]) {

   srand ((unsigned) time(NULL));
   int i, j, brodova=0;

   for (i=0; i<DIM; i++) {
      for (j=0; j<DIM; j++) {
         P[i][j]=rand()%2;
         if (P[i][j]==1) {
            P[i][j]=49;
            brodova++;
         }
         else P[i][j]=48;
      }
   }
   return brodova;
}

int fja2 (char P[DIM][DIM]) {

   int br=1, i, j;

    printf ("  1 2 3 4 5\n");

    for (i=0; i<DIM; i++) {
      for (j=0; j<DIM; j++) {
         if (j==0)
            printf ("%d", br);
         if ((P[i][j]=='X') || (P[i][j]=='P'))
            printf (" %c", P[i][j]);
         else
            printf (" +");
         if (j==4) {
            printf ("\n");
            br++;
         }
      }
   }
}

int fja3 (char P[DIM][DIM], int x, int y, int f) {

   if (P[x-1][y-1]==49) {
      printf ("\nPogodak!\n\n");
      P[x-1][y-1]='P';
      f++;
      fja2(P);
      return f;
   }
   else if (P[x-1][y-1]==48) {
      printf ("\nPromasaj! :(\n\n");
      P[x-1][y-1]='X';
      fja2(P);
      return f;
   }
   else if ((P[x-1][y-1]=='P')||(P[x-1][y-1]=='X')) {
      printf ("\nVec ste pogodili u to mjesto!\n\n");
      fja2(P);
      return f;
   }
}

int main() {

   srand ((unsigned) time(NULL));
   char P[DIM][DIM];
   int brodova, br = fja1(P), i, j, x, y, f=0;

   printf ("\nBroj brodova koje treba potopiti: %d\n\n", br);
   fja2(P);

   do {
      printf ("\nUnesite zeljeno mjesto: ");
      scanf ("%d %d", &x, &y);

      if (((x<0)||(x>5)) || ((y<0)||(y>5))) {
         printf ("\nPogresan unos. Unesite koordinate ponovno: ");
         scanf ("%d %d", &x, &y);
      }
      f = fja3(P, x, y, f);
   }

   while (f!=br);

   printf("\nIgra je gotova!");

   getch();
   return 0;
}

Atomska bubamara
Poruka je uređivana zadnji put čet 9.12.2010 13:16 (jurluk).
 
0 0 hvala 0
15 godina
neaktivan
offline
C program - greška kad dođe do % u printf

jeli zna netko što mi je krivo?

slovima:

#include<stdio.h>

int main(void){
double x,min,max,i,f;
scanf("%lf",&x);
min=x;
max=x;
for(i=1;i<9;i++){
scanf("%lf",&x);
if(abs(x)<abs(min))
min=x;
if(abs(x)>abs(max))
max=x;}
f=max*min;
printf("%g",f);
return 0;
}
Poruka je uređivana zadnji put ned 12.12.2010 17:30 (bandito).
 
0 0 hvala 0
15 godina
neaktivan
offline
C program - greška kad dođe do % u printf

Za abs(x) trebaš imati #include<stdlib.h>

Nevalja ti ispis varijable 'f' jer ne postoji %g.

Nista nije sveto sve je bruto i neto, sve je zabava!
Poruka je uređivana zadnji put ned 12.12.2010 17:52 (Shody_1994).
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf

Hvala , pretpostavio sam da mi je nešto tako krivo ,ali ovo %g pise u zadatku da se mora ispisivati sa %g.

16 godina
neaktivan
offline
RE: C program - greška kad dođe do % u printf

Postoji %g i njega se i preporuča, jer daje najljepši ispis.

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
15 godina
neaktivan
offline
C program - greška kad dođe do % u printf

:O

Nisam znao za to. Oprosti.

Nista nije sveto sve je bruto i neto, sve je zabava!
Moj PC  
0 0 hvala 0
Nova poruka
E-mail:
Lozinka:
 
vrh stranice