Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- void ucitaj(int** , int);
- void ispisi(int** , int );
- int* izdvoj(int** , int );
- int brElemenata = 0 ;
- int saberi(int , int );
- int oduzmi(int , int );
- int operacija(int* , int(int,int));
- int main(){
- printf("Unesite velicinu matrice (NxN) ---> ");
- int n ;
- scanf("%i",&n);
- printf("\n---------------\n");
- int** matrica = malloc( n * sizeof(int*));
- for(int i = 0 ; i < n; i++){
- matrica[i] = malloc(n * sizeof(int));
- }
- ucitaj(matrica, n);
- ispisi(matrica, n);
- int* niz = izdvoj(matrica, n);
- printf("\nIzdvojeni niz elemenata vecih od 20 ---> \n");
- for(int i = 0 ;i < brElemenata ; i++){
- printf("\t%i\t",niz[i]);
- }
- int k ;
- do{
- printf("\nUnesite 0 za operaciju saberi\t Unesite 1 za operaciju oduzmi --> ");
- scanf("%i",&k);
- }while(k != 0 && k != 1);
- printf("\n");
- int result ;
- switch(k){
- case 0 :
- printf("Odabrana je operacija saberi !\n");
- result = operacija(niz, saberi);
- break;
- case 1 :
- printf("Odabrana je operacija oduzmi !\n");
- result = operacija(niz, oduzmi);
- break;
- }
- printf("Rezultat posle odabrane operacije jeste \t---> %i",result);
- for(int i = 0 ;i < n ; i++){
- free(matrica[i]);
- }
- free(matrica);
- free(niz);
- return 0;
- }
- void ucitaj(int** matrica, int n ){
- printf("Ucitajte clanove matrice ---> \n");
- for(int i = 0 ;i < n ; i++){
- for(int j = 0 ;j < n ; j++){
- printf("Unesite \t%i. clan matrice ---> ", (i*n+j)+1);
- scanf("%i",&matrica[i][j]);
- }
- printf("\n");
- }
- }
- void ispisi(int** matrica, int n ){
- printf("Matrica ---> \n");
- for(int i = 0 ;i < n ; i++){
- for(int j = 0 ;j < n ; j++){
- printf("\t%i\t", matrica[i][j]);
- }
- printf("\n");
- }
- }
- int* izdvoj(int** matrica, int n ){
- int brHelper = 0 ;
- for(int i = 0 ;i < n ; i++){
- for(int j = 0 ;j < n ; j++){
- if(matrica[i][j]>20)
- brHelper++;
- }
- }
- brElemenata = brHelper;
- int* nizToReturn = malloc( brHelper * sizeof(int));
- int brojacHelper = 0 ;
- for(int i = 0 ;i < n ; i++){
- for(int j = 0 ;j < n ; j++){
- if(matrica[i][j]>20){
- nizToReturn[brojacHelper] = matrica[i][j];
- brojacHelper++;
- }
- }
- }
- return nizToReturn;
- }
- int saberi (int a, int b){
- return a+b ;
- }
- int oduzmi(int a, int b){
- return a-b;
- }
- int operacija(int* niz, int(*fun)(int,int)){
- int result = 0 ;
- for(int i = 0 ; i < brElemenata ; i++){
- result += fun(result,niz[i]);
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement