Advertisement
TeamFocus-Matija

Matrice

May 9th, 2016
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.69 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6.  
  7. typedef int MATRICA[3][3];
  8. typedef int NIZ[9];
  9.  
  10. void unosUMatricu(MATRICA m,int dim){
  11.     int i, j;
  12.  
  13.     for (i = 0; i < dim; i++)
  14.     {
  15.         for ( j = 0; j < dim; j++)
  16.         {
  17.             printf("M[%d][%d]=\t", i, j);
  18.             scanf("%d", &m[i][j]);
  19.         }
  20.     }
  21. }
  22.  
  23. void prikaz(MATRICA m, int dim){
  24.     int i, j;
  25.     printf("Matrica:\n");
  26.     for ( i = 0; i < dim; i++)
  27.     {
  28.         for ( j = 0; j < dim; j++)
  29.         {
  30.             printf("%d\t", m[i][j]);
  31.         }
  32.         printf("\n");
  33.     }
  34.  
  35.  
  36. }
  37.  
  38. void ispodGD(MATRICA m, int dim){
  39.     int i, j;
  40.     printf("\n");
  41.     for (i = 0; i < dim;i++){
  42.         for (j = 0; j  < dim;j++){
  43.             if (i>j){
  44.                 printf("%d\t",m[i][j]);
  45.            
  46.             }
  47.             else{
  48.                 printf("*\t");
  49.             }
  50.            
  51.         }
  52.         printf("\n");
  53.     }
  54. }
  55.  
  56. void sumaRedova(MATRICA m,int dim){
  57.     int i, j;
  58.     int suma = 0;
  59.  
  60.     printf("\nSuma redova:\n");
  61.     for (i = 0; i < dim; i++)
  62.     {
  63.         suma = 0;
  64.         for (j = 0; j < dim; j++)
  65.         {
  66.             suma = suma + m[i][j];
  67.             printf("%d\t", m[i][j]);
  68.         }
  69.         printf("=%d\n", suma);
  70.     }
  71. }
  72.  
  73. void transponovanaMatrica(MATRICA m, int dim){
  74.     int i, j;
  75.     printf("Transponovana Matrica:\n");
  76.    
  77.     for (i = 0; i < dim; i++)
  78.     {
  79.         for (j = 0; j < dim; j++)
  80.         {
  81.             printf("%d\t", m[j][i]);
  82.         }
  83.         printf("\n");
  84.     }
  85. }
  86.  
  87. void zamenaMestaGDiSD(MATRICA m, int dim){
  88.     int i;
  89.     int zamena;
  90.     for (i = 0; i < dim;i++){
  91.         zamena = m[i][i];
  92.         m[i][i] = m[i][dim - 1 - i];
  93.         m[i][dim - 1 - i] = zamena;
  94. }
  95. }
  96.  
  97. int daLiPostoji(NIZ niz,int brEl,int broj){
  98.     int i;
  99.  
  100.     for ( i = 0; i < brEl; i++)
  101.     {
  102.         if (niz[i] == broj){
  103.             return 1;
  104.         }
  105.     }
  106.     return 0;
  107. }
  108.  
  109. void unijaGDiSD(MATRICA m, int dim,NIZ niz,int *brEl){
  110.     int i, j;
  111.  
  112.     for ( i = 0; i < dim; i++)
  113.     {
  114.         for ( j = 0; j < dim; j++)
  115.         {
  116.             if (i == j){
  117.                 if (daLiPostoji(niz, *brEl, m[i][j]) == 0){
  118.                     niz[*brEl] = m[i][j];
  119.                     (*brEl)++;
  120.                 }
  121.             }
  122.             if (i + j == dim - 1){
  123.                 if (daLiPostoji(niz, *brEl, m[i][j]) == 0){
  124.                     niz[*brEl] = m[i][j];
  125.                     (*brEl)++;
  126.                 }
  127.             }
  128.         }
  129.     }
  130. }
  131.  
  132. int daLiSmoRadili(NIZ niz,int ogranicenje,int broj){
  133.     int i;
  134.     for (i = 0; i < ogranicenje;i++){
  135.         if (niz[i]==broj){
  136.             return 1;
  137.         }
  138.     }
  139.     return 0;
  140. }
  141.  
  142. int daLiSeNalaziNaGlavnoj(MATRICA m,int dim,int broj){
  143.     int i;
  144.     int broj;
  145.     for (i = 0; i < dim;i++){
  146.         if (m[i][i] == broj){
  147.         return 1;
  148.         }
  149.     }
  150. return 0;
  151. }
  152.  
  153. void presekGDiSD(MATRICA m, int dim, NIZ niz, int *brEl){
  154.     int i;
  155.    
  156.     for (i = 0; i < dim; i++){
  157.         if (daLiSeNalaziNaGlavnoj(m, dim, m[i][dim - 1 - i]) == 1){
  158.             if (daLiPostoji(niz, *brEl, m[i][dim - 1 - i]) == 0){
  159.                 niz[*brEl] = m[i][dim - 1 - i];
  160.                 (*brEl)++;
  161.             }
  162.         }
  163.     }
  164. }
  165.  
  166. int daLiSeNalaziUKoloni(MATRICA m, int red, int kolona, int broj){
  167.     int i, j;
  168.     for (i = 0; i < red; i++){
  169.         if (m[i][kolona] == broj){
  170.             return 1;
  171.         }
  172.     }
  173.     return 0;
  174. }
  175.  
  176. void punjenjeMatriceSaNulamaAkoTajBrojVecPostojiUKoloni(MATRICA m, int dim){
  177.     int i, j;
  178.     int broj;
  179.  
  180.     for (i = 0; i < dim; i++)
  181.     {
  182.         for (j = 0; j < dim; j++)
  183.         {
  184.             printf("M[%d][%d]=\t", i, j);
  185.             scanf("%d", &broj);
  186.  
  187.             if (daLiSeNalaziUKoloni(m, i, j, broj) == 1){
  188.                 m[i][j] = 0;
  189.             }
  190.             else{
  191.                 m[i][j] = broj;
  192.             }
  193.         }
  194.     }
  195. }
  196.  
  197. void sortiranjeNiza(NIZ niz, int brEl){
  198.     int i, pom;
  199.     int sortiran;
  200.  
  201.     do{
  202.         sortiran = 0;
  203.         for (i = 0; i < brEl; i++)
  204.         {
  205.             if (niz[i]>niz[i + 1]){
  206.                 pom = niz[i];
  207.                 niz[i] = niz[i + 1];
  208.                 niz[i + 1] = pom;
  209.                 sortiran = 1;
  210.             }
  211.         }
  212.     } while (sortiran == 1);
  213. }
  214.  
  215. int main(void){
  216.     MATRICA m = {1,2,3,4,5,6,7,8,9};
  217.     int dimenzija=3;
  218.     NIZ x;
  219.     int brEl = 0;
  220.  
  221.  
  222.     //printf("Kojih dimenzija zelite matricu:\t");
  223.     //scanf("%d", &dimenzija);
  224.  
  225.     //unosUMatricu(m, dimenzija);
  226.     prikaz(m, dimenzija);
  227.     ispodGD(m,3);
  228.     sumaRedova(m, dimenzija);
  229.     return 0;
  230. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement