[ [REaS0n] @ 19.03.2007. 11:51 ] @
Ovo je kod iz jedne knjige koji mi bas nije jasan pa ako neko od iskusnijih ima vremena bilo bi lepo kad mi liniju po liniju objasnio,hvala..
Code:
#include <stdio.h>

main()
{
    int t, i, num[3][4];
    
    for(t=0; t<3; ++t)
      for(i=0; i<4; ++i)
      num[t][i] = (t*4)+i+1;
      /* now print them out */
      for(t=0; t<3; ++t) 
     {
       for(i=0; i<4; ++i)
       printf("%3d ", num[t][i]);
       printf("\n");
       }
       return 0;
       }
[ X Files @ 19.03.2007. 17:06 ] @
To je dakle ovaj kod (samo malo modifikovan):
http://www.java2s.com/Code/C/Data-Type/Twodimensionalintarray.htm

Citat:

Code:

#include <stdio.h> // <--- Ukljucuje se biblioteka potrebna zbog funkcije za ispis na ekran (printf)

int main(void) // <--- glavna funkcija. nema argumente (void), ima povratnu vrednost (int)
{
  int t, i, num[3][4]; // <--- t, i - promenljive potrebne dvostrukoj petlji, num - matrica dimenzija 3x4 (od [0,0] do [2,3] )

  for(t = 0; t < 3; ++t) // <--- dvostruka...
    for(i = 0; i < 4; ++i) // <--- ... petlja
      num[ t ][ i ] = ( t * 4 ) + i + 1; // <--- elementima matrice dodeljuju se redom vrednosti od 1 do 12

  /* now print them out */
  for(t = 0; t < 3; ++t) { // <--- opet dvostruka ...
    for(i = 0; i < 4; ++i)   // <--- ...petlja
      printf("%3d ", num[ t ][ i ]); // <--- ispis malocas dodeljenih vrednosti na ekran, "%3d " - da bi se vodilo racuna o razmaku i poziciji
    
    printf("\n"); // <--- predji u novi red, cim ispises tekuci red matrice
  }

  return 0; // <--- povratna vrednost glavne funkcije
}


[ [REaS0n] @ 20.03.2007. 17:52 ] @
zahvaljujem x files,ali meni sledece nije jasno
Code:
for(t = 0; t < 3; ++t) // <--- dvostruka...
    for(i = 0; i < 4; ++i) // <--- ... petlja
      num[ t ][ i ] = ( t * 4 ) + i + 1; // <--- elementima matrice dodeljuju se redom vrednosti od 1 do 12

kako to da se dodeljuju vredonosti od 1 do 12,ako krene od t=0 (0*4)+0+1 =1 t =1,onda (1*4)+0+1 =5,onda t=2 (2*4)+0+1=9
za drugu petlju, (0*4)+0 +1 = 1, (0*4)+ 1+1 =2,(0*4)+2+1 =3,(0*4)+3+1 =4....znachi brojevi koje si dobijaju su 1,2,3,4,5,9.?
[ SuPeR_MaSteR @ 20.03.2007. 19:06 ] @
Pri prvom prolazu t = 0, i = 0:
num[0][0] = (0*4)+0+1 =1,
zatim t =0, i = 1
num[0][1] = (0*4)+1+1 =2..
i tako redom.
Prvo se izvrsava unutrasnja petlja pa tek onda spoljasnja.
[ X Files @ 20.03.2007. 19:10 ] @
Citat:

kako to da se dodeljuju vredonosti od 1 do 12,ako krene od t=0 (0*4)+0+1 =1 t =1,onda (1*4)+0+1 =5,onda t=2 (2*4)+0+1=9
za drugu petlju, (0*4)+0 +1 = 1, (0*4)+ 1+1 =2,(0*4)+2+1 =3,(0*4)+3+1 =4....znachi brojevi koje si dobijaju su 1,2,3,4,5,9.?

Nisi isprobao program na racunaru?

Code:

for(t = 0; t < 3; ++t) // <--- dvostruka...
    for(i = 0; i < 4; ++i) // <--- ... petlja
      num[ t ][ i ] = ( t * 4 ) + i + 1; // <--- elementima matrice dodeljuju se redom vrednosti od 1 do 12


Petlja i se vrti brže nego t, ona se zapravo okrene cela (4 puta) za svako t (3 puta):


1-> t=0, i=0; = > 0*4 + 0 + 1 = 1
2-> t=0, i=1; ... itd
3-> t=0, i=2;
4-> t=0, i=3;
5-> t=1, i=0;
6-> t=1, i=1;
7-> t=1, i=2;
8-> t=1, i=3;
9-> t=2, i=0;
10-> t=2, i=1;
11-> t=2, i=2; ... itd
12-> t=2, i=3; = > 2*4 + 3 + 1 = 12


[ [REaS0n] @ 21.03.2007. 10:24 ] @
@ X Files
isprobao sam program i video sam sta se dobije ali greska je bila u mom razumevanju kako rade ove dvostruke petlje,uglavnom sad mi je jasno hvala