Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- void ucitaj_cene(float** , int);
- float** izdvoj(float** , int ,float , int(float, float));
- int brElemenataNiza = 0;
- int veci_od(float , float );
- int manji_od(float , float );
- void uvecaj(float *broj , float );
- void umanji(float *broj, float );
- void modifikuj_vrednost(float** ,float, void(float*, float) );
- int main(){
- printf("\n------------------\nUnesite velicinu matrice n (NxN) ---> ");
- int n ;
- scanf("%i",&n);
- float** matrica = malloc( n * sizeof(float*));
- for(int i = 0 ; i < n ;i++){
- matrica[i] = malloc (n * sizeof(float));
- }
- ucitaj_cene(matrica, n);
- printf("\n------------------\nUneta matrica ---> \n");
- for(int i = 0 ; i < n ;i++){
- for(int j = 0 ; j < n ;j++){
- printf("\t%.2f\t",matrica[i][j]);
- }
- printf("\n");
- }
- printf("Unesite 0 za povecanje cena \t Unesite 1 za smanjenje cena\n");
- int k ;
- scanf("%i", &k);
- printf("\n------------------\n");
- printf("Unesite granicu za uporedjivanje\n ");
- float granica ;
- scanf("%f", &granica);
- printf("\n------------------\n");
- printf("Unesite procenat za adzastttmentt\n ");
- float procenat ;
- scanf("%f", &procenat);
- if(k==0) {
- float** niz = izdvoj(matrica, n, granica, manji_od);
- modifikuj_vrednost(niz, procenat, uvecaj);
- } else {
- float** niz = izdvoj(matrica, n, granica, veci_od);
- modifikuj_vrednost(niz, procenat, umanji);
- }
- printf("\n------------------\nModifikovana matrica ---> \n");
- for(int i = 0 ; i < n ;i++){
- for(int j = 0 ; j < n ;j++){
- printf("\t%.2f\t",matrica[i][j]);
- }
- printf("\n");
- }
- for(int i = 0 ; i < n ;i++){
- free(matrica[i]);
- }
- free(matrica);
- return 0 ;
- }
- void ucitaj_cene(float** matrica , int n ){
- printf("\n------------------\nUnesite clanove matrice (cene) : \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("%f",&matrica[i][j]);
- }
- printf("\n");
- }
- }
- float** izdvoj(float** matrica , int n , float br , int(*fun)(float, float)){
- int tempBr = 0;
- for(int i = 0 ; i < n ;i++){
- for(int j = 0 ; j < n ;j++){
- if(fun(matrica[i][j],br))
- tempBr++;
- }
- }
- brElemenataNiza = tempBr;
- float** nizPokazivaca = malloc( tempBr * sizeof(float*));
- int brj = 0;
- for(int i = 0 ; i < n ;i++){
- for(int j = 0 ; j < n ;j++){
- if(fun(matrica[i][j],br)){
- nizPokazivaca[brj] = &matrica[i][j];
- brj++;
- }
- }
- }
- }
- int veci_od(float b1, float b2){
- return (b1>b2) ? 1:0;
- }
- int manji_od(float b1, float b2){
- return (b1>b2) ? 1:0;
- }
- void uvecaj(float *broj , float postotak){
- (*broj) +=( (*broj) * postotak )/100.0;
- }
- void umanji(float *broj , float postotak){
- (*broj) -=( (*broj) * postotak )/100.0;
- }
- void modifikuj_vrednost(float** niz,float procenat, void(*fun)(float*, float) ){
- for(int i = 0 ; i <brElemenataNiza ;i++){
- fun(niz[i],procenat);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement