Advertisement
Mixilino

manipulacije sa matricama

Apr 3rd, 2019
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.95 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. void funkcija_1() {
  5.     printf("Funkcija 1: \n");
  6.     int niz[20], x, brojac;
  7.     int n, konacanBrojClanova = 0;
  8.     printf("Unesite koliko clanova niza zelite da unesete (max 20): ");
  9.     scanf("%d", &n);
  10.     for (int i = 0; i < n; i++)
  11.     {
  12.         printf("Unesite clan niza: ");
  13.         scanf("%d", &x);
  14.         brojac = 0;
  15.         for (int j = 0; j <= konacanBrojClanova; j++)
  16.         {
  17.             if (x == niz[j]) {
  18.                 brojac++;
  19.             }
  20.         }
  21.         if (brojac < 2) {
  22.             niz[konacanBrojClanova] = x;
  23.             konacanBrojClanova++;
  24.         }
  25.     }
  26.     printf("Vas niz je: \n");
  27.     for (int i = 0; i < konacanBrojClanova; i++)
  28.     {
  29.         printf("niz[%d] = %d\t", i, niz[i]);
  30.        
  31.     }
  32. }
  33. void funkcija_2() {
  34.     printf("\nFunkcija 2: \n");
  35.     int A[100], B[100], C[100];
  36.     int brojClanova, ukBrojClanovaB = 0, ukBrojClanovaC = 0, brojac;
  37.     printf("Unesite koliko clanova niza zelite da unesete: ");
  38.     scanf("%d", &brojClanova);
  39.     for (int i = 0; i < brojClanova; i++)
  40.     {
  41.         printf("Unesite A[%d]: ", i);
  42.         scanf("%d", &A[i]);
  43.     }
  44.     for (int i = 0; i < brojClanova; i++)
  45.     {
  46.         brojac = 0;
  47.         for (int j = 0; j < brojClanova; j++)
  48.         {
  49.             if (A[i] == A[j] && i != j) {
  50.                 brojac++;
  51.             }
  52.         }
  53.         if (brojac < 1) {
  54.             B[ukBrojClanovaB] = A[i];
  55.             ukBrojClanovaB++;
  56.         }
  57.         else {
  58.             int temp = 1;
  59.             for (int  k = 0; k < ukBrojClanovaC; k++)
  60.             {
  61.                 if (C[k] == A[i]) {
  62.                     temp = 0;
  63.                 }
  64.             }
  65.             if (temp) {
  66.                 C[ukBrojClanovaC] = A[i];
  67.                 ukBrojClanovaC++;
  68.             }
  69.         }
  70.     }
  71.     for (int i = 0; i < ukBrojClanovaB; i++) {
  72.         printf("B[%d] = %d\t", i, B[i]);
  73.     }
  74.     printf("\n");
  75.     for (int i = 0; i < ukBrojClanovaC; i++) {
  76.         printf("C[%d] = %d\t", i, C[i]);
  77.     }
  78. }
  79. void funkcija_3() {
  80.     int M[10][10], suma[6], zbir = 0, n, x;
  81.     printf("Unesite velicinu vase matrice: ");
  82.     scanf("%d", &n);
  83.     for (int i = 0; i < n; i++)
  84.     {
  85.         for (int j = 0; j < n; j++)
  86.         {
  87.             printf("M[%d][%d] = ", i, j);
  88.             scanf("%d", &M[i][j]);
  89.         }
  90.     }
  91.     printf("Vasa matrica je: \n");
  92.     for (int i = 0; i < n; i++)
  93.     {
  94.         for (int j = 0; j < n; j++)
  95.         {
  96.             printf("M[%d][%d] = %d\t", i, j, M[i][j]);
  97.         }
  98.         printf("\n");
  99.     }
  100.     x = n / 2;
  101.     for (int i = n-x; i < n; i++)
  102.     {
  103.         zbir = 0;
  104.         for (int j = 0; j < n; j++)
  105.         {
  106.             zbir += M[j][i];
  107.         }
  108.         suma[x + i - n] = zbir;
  109.     }
  110.     for (int i = 0; i < x; i++)
  111.     {
  112.         printf("Suma[%d] = %d\t", i, suma[i]);
  113.     }
  114. } // matrica
  115. void funkcija_4() {
  116.     int M[5][5] = { 1,2,5,-1,3,
  117.                     4,8,4,1,6,
  118.                     2,4,6,7,8,
  119.                     3,4,7,4,2,
  120.                     8,8,11,9,3 };
  121.     int glavna[5], sporedna[5], n = 5, temp, status = 1;
  122.     printf("Vasa matrica je: \n");
  123.     for (int i = 0; i < n; i++)
  124.     {
  125.         for (int j = 0; j < n; j++)
  126.         {
  127.             printf("M[%d][%d] = %d\t", i, j, M[i][j]);
  128.         }
  129.         printf("\n");
  130.     }
  131.     for (int i = 0; i < n; i++)
  132.     {
  133.         glavna[i] = M[i][i];
  134.         sporedna[i] = M[n - i - 1][i];
  135.  
  136.     }
  137.  
  138.     printf("Glavna dijagonala: \n");
  139.     for (int i = 0; i < n; i++)
  140.     {
  141.         printf("g[%d] = %d\t", i, glavna[i]);
  142.     }
  143.     printf("Sporedna dijagonala: \n");
  144.     for (int i = 0; i < n; i++)
  145.     {
  146.         printf("s[%d] = %d\t", i, sporedna[i]);
  147.     }
  148.     for (int i = 0; i < n; i++)
  149.     {
  150.         temp = 0;
  151.         for (int j = 0; j < n; j++)
  152.         {
  153.             if (glavna[i] == sporedna[j]) {
  154.                 temp++;
  155.             }
  156.             else if (glavna[i] == glavna[j] && i != j) {
  157.                 temp++;
  158.             }
  159.         }
  160.         if (temp != 1) {
  161.             status = 0;
  162.             break;
  163.         }
  164.     }
  165.     if (status==1) {
  166.         printf("DA");
  167.     }
  168.     else {
  169.         printf("NE");
  170.     }
  171. }
  172. void funkcija_5() {
  173.     int A[5] = { 2,3,3,6,7 };
  174.     int B[8] = { 0,1,1,3,4,4,9,10 };
  175.     int C[13];
  176.     int n1 = 5, n2 = 8, n3 = 13;
  177.     int curr1 = 0, curr2 = 0;
  178.     for (int i = 0; i < n3; i++)
  179.     {
  180.         if (A[curr1] <= B[curr2] && curr1 < n1 && curr2 < n2) {
  181.             C[i] = A[curr1];
  182.             curr1++;
  183.         }
  184.         else {
  185.             C[i] = B[curr2];
  186.             curr2++;
  187.         }
  188.     }
  189.     for (int i = 0; i < n3; i++)
  190.     {
  191.         printf("C[%d] = %d \n", i, C[i]);
  192.     }
  193. }
  194. void bonus() {
  195.     int n;
  196.     printf("Unesite gornju granicu");
  197.     scanf("%d", &n);
  198.     printf("[ ");
  199.     for (int i = 1; i <= n-2; i++)
  200.     {
  201.         if (prost_broj(i) && prost_broj(i + 2)) {
  202.             printf("%d %d, ", i, i + 2);
  203.         }
  204.     }
  205.  
  206.     printf("]");
  207. }
  208. int prost_broj(int n) {
  209.     int status = 1;
  210.     if (n <= 1) {
  211.         status = 0;
  212.         return status;
  213.     }
  214.     for (int i = 2; i < n; i++)
  215.     {
  216.         if (n % i == 0) {
  217.             status = 0;
  218.         }
  219.     }
  220.     return status;
  221. }
  222.  
  223.  
  224. int main(void) {
  225.     //int niz[3]= {{1,2,3}, {4,5,6}, {7,8,9}}
  226.     int M[3][3] = { 1,2,3,
  227.                             4,5,6,
  228.                             7,8,9 };
  229.     for (int i = 0; i < 3; i++)
  230.     {
  231.         for (int j = 0; j < 3; j++)
  232.         {
  233.             printf("M[%d][%d] = %d\t", i, j, M[i][j]);
  234.         }
  235.         printf("\n");
  236.     }
  237.     int n = 3;
  238.     int glavna = 0, ispodGlavna = 0, iznadGlavna = 0, sporedna = 0, ispodSporedna = 0, iznadSporedna = 0;
  239.     for (int i = 0; i < n; i++)
  240.     {
  241.         for (int j = 0; j < n; j++)
  242.         {
  243.             if (i < j) {
  244.                 iznadGlavna += M[i][j];
  245.             }
  246.             if (i > j) {
  247.                 ispodGlavna += M[i][j];
  248.             }
  249.             if (i == j) {
  250.                 glavna += M[i][j];
  251.             }
  252.             if (i + j == n - 1) {
  253.                 sporedna += M[i][j];
  254.             }
  255.             if (i + j < n - 1) {
  256.                 iznadSporedna += M[i][j];
  257.             }
  258.             if (i + j > n - 1) {
  259.                 ispodSporedna += M[i][j];
  260.             }
  261.         }
  262.     }
  263.     printf("Sume:\nGlavna: %d\nSporedna: %d\nIspod glavne: %d\nIznad glavne:%d\nIspod sporedne: %d\nIznad sporedne: %d", glavna, sporedna, ispodGlavna, iznadGlavna, ispodSporedna, iznadSporedna);
  264.     /*
  265.     int a[3], suma;
  266.     int n = 3;
  267.     printf("Glavna dijagonala\n");
  268.     for (int i = 0; i < 3; i++)
  269.     {
  270.         printf("M[%d][%d] = %d\t", i, i, M[i][i]);
  271.     }  // stari zadatak...
  272.     printf("\n\nSporedna dijagonala dimenzije kv mat = %d\n", n);
  273.     for (int i = 0; i < n; i++)
  274.     {
  275.         printf("M[%d][%d] = %d\t", i, n - 1 - i, M[i][n - 1 - i]);
  276.     }
  277.     printf("\nZbir elemenata ispod glavne dijagonale: \n");
  278.     suma = 0;
  279.     for (int i = 0; i < n; i++)
  280.     {
  281.         for (int j = 0; j < n; j++)
  282.         {
  283.             if (i > j) {
  284.                 suma += M[i][j];
  285.             }
  286.         }
  287.     }
  288.    
  289.     printf("Suma je %d\n", suma);
  290.     printf("Zbir elemenata ispod sporedne dijagonale: \n");
  291.     suma = 0;
  292.     for (int i = 0; i < n; i++)
  293.     {
  294.         for (int j = 0; j < n; j++)
  295.         {
  296.             if (i + j >= n) {
  297.                 suma += M[i][j];
  298.             }
  299.         }
  300.     }
  301.     printf("Suma je %d\n", suma);
  302.     printf("\n\n");
  303.     */
  304.     return 0;
  305. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement