Advertisement
FRiTZZY

2D nizovi (arrays)

Dec 20th, 2014
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.28 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define m 4
  4. #define n 3
  5.  
  6. int main()
  7. {
  8.     /* Deklaracija niza od m redova i n kolona */
  9.     int niz[m][n];
  10.     /* Deklaracija pomocnih varijabli */
  11.     int i, j, min, max, suma;
  12.    
  13.     /* Niz ima m x n elemenata, odnosno 4 x 3 = 12 elemenata
  14.      * Graficki raspored elemenata niza je:
  15.      * niz[0][0] niz[0][1] niz[0][2]
  16.      * niz[1][0] niz[1][1] niz[1][2]
  17.      * niz[2][0] niz[2][1] niz[2][2]
  18.      * niz[3][0] niz[3][1] niz[3][2]
  19.      *
  20.      * Sa svakim pojedinacnim elementom mozemo raditi sve operacije
  21.      * koje smo radili sa obicnim varijablama iz proslih vjezbi
  22.      *
  23.      * Npr. upis nekog elementa:
  24.      * scanf("%d", niz[2][1]);
  25.      *
  26.      * Npr. ispis nekog elementa:
  27.      * printf("%d", niz[2][3]);
  28.      *
  29.      * Npr. inkrementiranje nekog elementa:
  30.      * niz[0][0]++;
  31.      *
  32.      * Npr. provjera vrijednost nekog elementa
  33.      * if (niz[1][2] == 5)
  34.      *
  35.      * U nastavku su dati neki slozeniji primjeri
  36.      * */
  37.    
  38.     /* Dvostruka petlja koja demonstrira unos
  39.      * kompletnog niza (red po red) */
  40.     for (i = 0; i < m; i++)
  41.     {
  42.         for (j = 0; j < n; j++)
  43.         {
  44.             printf("Unesite element niz[%d][%d]: ", i, j);
  45.             scanf("%d", &niz[i][j]);
  46.         }
  47.     }
  48.    
  49.     /* Dvostruka petlja koja demonstrira ispis
  50.      * kompletnog niza (red po red) */
  51.     printf("Unijeli ste dvodimenzionalni niz: \n");
  52.     for (i = 0; i < m; i++)
  53.     {
  54.         for (j = 0; j < n; j++)
  55.         {
  56.             printf("%4d", niz[i][j]);
  57.         }
  58.        
  59.         printf("\n");
  60.     }
  61.    
  62.     /* Primjer koji pokazuje pronalazenje najveceg i najmanjeg
  63.      * elementa dvodimenzionalnog niza */
  64.     min = niz[0][0];
  65.     max = niz[0][0];
  66.    
  67.     for (i = 0; i < m; i++)
  68.     {
  69.         for (j = 0; j < n; j++)
  70.         {
  71.             if (niz[i][j] > max)
  72.             {
  73.                 max = niz[i][j];
  74.             }
  75.            
  76.             if (niz[i][j] < min)
  77.             {
  78.                 min = niz[i][j];
  79.             }
  80.         }
  81.     }
  82.    
  83.     printf("Najveci element unesenog niza je: %d.\n", max);
  84.     printf("Najmanji element unesenog niza je: %d.\n", min);
  85.    
  86.     /* Primjer koji pokazuje pronalazenje najveceg i najmanjeg
  87.      * elementa za svaki red */
  88.     for (i = 0; i < m; i++)
  89.     {
  90.         max = niz[i][0];
  91.         min = niz[i][0];
  92.        
  93.         for (j = 0; j < n; j++)
  94.         {
  95.             if (niz[i][j] > max)
  96.             {
  97.                 max = niz[i][j];
  98.             }
  99.            
  100.             if (niz[i][j] < min)
  101.             {
  102.                 min = niz[i][j];
  103.             }
  104.         }
  105.        
  106.         printf("\nNajveci element %d. reda je: %d.\n", i + 1, max);
  107.         printf("Najmanji element %d. reda je: %d.\n\n", i + 1, min);
  108.     }
  109.    
  110.     /* Primjer koji pokazuje pronalazenje najveceg i najmanjeg
  111.      * elementa za svaku kolonu */
  112.     for (j = 0; j < n; j++)
  113.     {
  114.         max = niz[0][j];
  115.         min = niz[0][j];
  116.        
  117.         for (i = 0; i < m; i++)
  118.         {
  119.             if (niz[i][j] > max)
  120.             {
  121.                 max = niz[i][j];
  122.             }
  123.            
  124.             if (niz[i][j] < min)
  125.             {
  126.                 min = niz[i][j];
  127.             }
  128.         }
  129.        
  130.         printf("\nNajveci element %d. kolone je: %d.\n", j + 1, max);
  131.         printf("Najmanji element %d. kolone je: %d.\n\n", j + 1, min);
  132.     }
  133.    
  134.     /* Primjer koji pokazuje pronalazenje sume svih elemenata
  135.      * koji se nalaze na ivicama niza
  136.      *
  137.      * Napomena: Ovakav je pristup je krajnje spor i moze se isti
  138.      * problem rijesiti puno brze preko dvije jednostruke petlje
  139.      * (probajte napisati za vjezbu)
  140.      * */
  141.    
  142.     suma = 0;
  143.    
  144.     for (i = 0; i < m; i++)
  145.     {
  146.         for (j = 0; j < n; j++)
  147.         {
  148.             if ((i == 0) || (i == m - 1) || (j == 0) || (j == n - 1))
  149.             {
  150.                 suma += niz[i][j];
  151.             }
  152.         }
  153.     }
  154.    
  155.     printf("Suma elemenata na ivicama unesenog niza je: %d.\n", suma);
  156.    
  157.     return 0;
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement