Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Napisite C program koji ce omoguciti unos elemenata kvadratne 2D matrice.
- * Memoriju za matricu alocirati dinamicki. Ako je matrica dimenzija NxN,
- * zamislite da je matrica podjeljena horizontalno po pola (prvih N/2
- * redova pripadaju gornjoj polumatrici, a drugih N/2 redova donjoj polumatrici).
- *
- * Vas program treba ispisati sumu svih elemenata matrice koji su veći od
- * prosječne vrijednosti elemenata polumatrice u kojoj se nalaze.
- *
- * Kod razdvojiti u funkcije čije će implementacije biti u functions.c, a
- * deklaracije funkcija u functions.h
- * Vas program mora imati minimalno 3 funkcije:
- *
- * void printMatrix(float **M, int n);
- * void inputMatrix(float **M, int n);
- * float findSum(float **M, int n);
- *
- * funkcija printMatrix() ispisuje cijelu matricu na ekran
- * funkcija inputMatrix() učitava podatke s tipkovnice u matricu
- * funkcija findSum() pronalazi sumu svih onih elemenata matrice čija je vrijednost
- * veća od prosječne vrijednosti polumatrice u kojoj se nalaze.
- *
- * Deklaracije ovih funkcija su vec postavljene u functions.h datoteku. Iz main
- * funkcije trebate pozvati ove funkcije. Ispis rezultata odraditi u formatu:
- * printf("REZULTATI:\n%.2f", suma_koju_je_vratila_funkcija_findSum);
- *
- * Ulaz u program su: jedan cijeli broj koji predstavlja broj redaka i stupaca
- * kvadratne matrice, nakon cega ulaze vrijednosti elemenata matrice, svaki u svom redu.
- *
- * VPL ne provjerava ispis matrice, ali tu funkciju isto morate implementirati
- * i pozvati ju iz maina kako bi ispisali učitanu matricu.
- */
- //PROGRAM.C
- #include"functions.h"
- #include<stdio.h>
- #include<stdlib.h>
- int main()
- {
- float **M;
- int i, j, n, m;
- scanf("%d", &n);
- M=(float**)malloc(n*sizeof(float*));
- for(i=0;i<n;i++)
- {
- *(M+i)=(float*)malloc(n*sizeof(float));
- }
- inputMatrix(M, n);
- printMatrix(M, n);
- printf("REZULTATI:\n%.2f", findSum(M, n));
- return 0;
- }
- //HEADER
- #ifndef FUNCTIONS_H
- #define FUNCTIONS_H
- void printMatrix(float **M, int n);
- void inputMatrix(float **M, int n);
- float findSum(float **M, int n);
- #endif
- //FUNKCIJE
- #include"functions.h"
- #include<stdio.h>
- #include<stdlib.h>
- void inputMatrix(float **M, int n)
- {
- int i, j;
- for(i=0;i<n;i++)
- {
- for(j=0;j<n;j++)
- {
- scanf("%f", &M[i][j]);
- }
- }
- }
- void printMatrix(float **M, int n)
- {
- int i, j;
- for(i=0;i<n;i++)
- {
- for(j=0;j<n;j++)
- {
- printf("%.2f\t", M[i][j]);
- }
- printf("\n");
- }
- }
- float findSum(float **M, int n)
- {
- int i, j;
- float uppersum=0, lowersum=0, sum=0;
- for(i=0;i<n/2;i++)
- {
- for(j=0;j<n;j++)
- {
- uppersum+=M[i][j];
- }
- }
- for(i=n/2;i<n;i++)
- {
- for(j=0;j<n;j++)
- {
- lowersum+=M[i][j];
- }
- }
- uppersum/=(n/2)*n;
- lowersum/=(n/2)*n;
- for(i=0;i<n/2;i++)
- {
- for(j=0;j<n;j++)
- {
- if(M[i][j]>uppersum) sum+=M[i][j];
- }
- }
- for(i=n/2;i<n;i++)
- {
- for(j=0;j<n;j++)
- {
- if(M[i][j]>lowersum) sum+=M[i][j];
- }
- }
- return sum;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement