Advertisement
filip710

2016KOL1_Z3_GRUPA A

Jul 6th, 2016
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.80 KB | None | 0 0
  1. /* Napisite C program koji ce omoguciti unos elemenata 2D matrice. Memoriju za
  2.  * matricu alocirati dinamicki. Vas program treba pronaci i ispisati sumu svih
  3.  * elemenata matrice koji su veći od prosječne vrijednosti retka u kojem se
  4.  * nalaze.
  5.  *
  6.  * Kod razdvojiti u funkcije čije će implementacije biti u functions.c, a
  7.  * deklaracije funkcija u functions.h
  8.  * Vas program mora imati minimalno 3 funkcije:
  9.  *
  10.  * void printMatrix(float **M, int n, int m);
  11.  * void inputMatrix(float **M, int n, int m);
  12.  * float findSum(float **M, int n, int m);
  13.  *
  14.  * Deklaracije ovih funkcija su vec postavljene u functions.h datoteku. Iz main
  15.  * funkcije trebate pozvati ove funkcije. Ispis rezultata odraditi u formatu:
  16.  * printf("REZULTATI:\n%.2f", suma_koju_je_vratila_funkcija_findSum);
  17.  *
  18.  * funkcija printMatrix() ispisuje cijelu matricu na ekran
  19.  * funkcija inputMatrix() učitava podatke s tipkovnice u matricu
  20.  * funkcija findSum() pronalazi sumu svih onih elemenata matrice čija je vrijednost
  21.  * veća od prosječne vrijednosti reda u kojem se nalaze.
  22.  *
  23.  * Ulaz u program su dva cijela broja koja predstavljaju broj redaka i stupaca
  24.  * matrice, nakon cega ulaze vrijednosti elemenata matrice.
  25.  *
  26.  * VPL ne provjerava ispis matrice, ali tu funkciju isto morate implementirati
  27.  * i pozvati ju iz maina kako bi ispisali učitanu matricu.  
  28.  */
  29.  
  30. //PROGRAM.C
  31.  
  32. #include"functions.h"
  33. #include<stdio.h>
  34. #include<stdlib.h>
  35. int main()
  36. {
  37.     float **M;
  38.     int i, j, n, m;
  39.    
  40.     scanf("%d", &n);
  41.     scanf("%d", &m);
  42.    
  43.     M=(float**)malloc(n*sizeof(float*));
  44.     for(i=0;i<n;i++)
  45.     {
  46.         *(M+i)=(float*)malloc(m*sizeof(float));
  47.     }
  48.     inputMatrix(M, n, m);
  49.    
  50.     printMatrix(M, n, m);
  51.  
  52.     printf("REZULTATI:\n%.2f", findSum(M, n, m));
  53.    
  54.     return 0;    
  55. }
  56.  
  57. //HEADER
  58. #ifndef FUNCTIONS_H
  59. #define FUNCTIONS_H
  60.  
  61. void printMatrix(float **M, int n, int m);
  62. void inputMatrix(float **M, int n, int m);
  63. float findSum(float **M, int n, int m);
  64.  
  65. #endif
  66.  
  67. //FUNKCIJE
  68. #include"functions.h"
  69. #include<stdio.h>
  70. #include<stdlib.h>
  71.  
  72. void inputMatrix(float **M, int n, int m)
  73. {
  74.     int i, j;
  75.     for(i=0;i<n;i++)
  76.     {
  77.         for(j=0;j<m;j++)
  78.         {
  79.             scanf("%f", &M[i][j]);
  80.         }
  81.     }
  82. }
  83. void printMatrix(float **M, int n, int m)
  84. {
  85.     int i, j;
  86.     for(i=0;i<n;i++)
  87.     {
  88.         for(j=0;j<m;j++)
  89.         {
  90.             printf("%.2f\t", M[i][j]);
  91.         }
  92.         printf("\n");
  93.     }
  94. }
  95. float findSum(float **M, int n, int m)
  96. {
  97.     int i, j;
  98.     int sum = 0;
  99.     int line_sum=0;
  100.    
  101.     for(i=0;i<n;i++)
  102.     {
  103.         line_sum=0;
  104.         for(j=0;j<m;j++)
  105.         {
  106.             line_sum+=M[i][j];
  107.         }
  108.         for(j=0;j<m;j++)
  109.         {
  110.             if(M[i][j]>line_sum/m) sum+=M[i][j];
  111.         }
  112.        
  113.     }
  114.     return sum;
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement