Advertisement
filip710

2016KOL1_Z3_GRUPA B

Jul 6th, 2016
128
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 stupca 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 stupca 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. #include"functions.h"
  32. #include<stdio.h>
  33. #include<stdlib.h>
  34. int main()
  35. {
  36.     float **M;
  37.     int i, j, n, m;
  38.    
  39.     scanf("%d", &n);
  40.     scanf("%d", &m);
  41.    
  42.     M=(float**)malloc(n*sizeof(float*));
  43.     for(i=0;i<n;i++)
  44.     {
  45.         *(M+i)=(float*)malloc(m*sizeof(float));
  46.     }
  47.     inputMatrix(M, n, m);
  48.    
  49.     printMatrix(M, n, m);
  50.  
  51.     printf("REZULTATI:\n%.2f", findSum(M, n, m));
  52.    
  53.     return 0;    
  54. }
  55.  
  56. //HEADER
  57. #ifndef FUNCTIONS_H
  58. #define FUNCTIONS_H
  59.  
  60. void printMatrix(float **M, int n, int m);
  61. void inputMatrix(float **M, int n, int m);
  62. float findSum(float **M, int n, int m);
  63.  
  64. #endif
  65.  
  66. //FUNKCIJE
  67. #include"functions.h"
  68. #include<stdio.h>
  69. #include<stdlib.h>
  70.  
  71. void inputMatrix(float **M, int n, int m)
  72. {
  73.     int i, j;
  74.     for(i=0;i<n;i++)
  75.     {
  76.         for(j=0;j<m;j++)
  77.         {
  78.             scanf("%f", &M[i][j]);
  79.         }
  80.     }
  81. }
  82. void printMatrix(float **M, int n, int m)
  83. {
  84.     int i, j;
  85.     for(i=0;i<n;i++)
  86.     {
  87.         for(j=0;j<m;j++)
  88.         {
  89.             printf("%.2f\t", M[i][j]);
  90.         }
  91.         printf("\n");
  92.     }
  93. }
  94. float findSum(float **M, int n, int m)
  95. {
  96.     int i, j;
  97.     int sum = 0;
  98.     int column_sum=0;
  99.    
  100.     for(j=0;j<m;j++)
  101.     {
  102.         column_sum=0;
  103.         for(i=0;i<n;i++)
  104.         {
  105.             column_sum+=M[i][j];
  106.         }
  107.         for(i=0;i<n;i++)
  108.         {
  109.             if(M[i][j]>column_sum/m) sum+=M[i][j];
  110.         }
  111.     }
  112.     return sum;
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement