Untitled

Anonymous
plain_text
03/03/2026 11:59 AM
4.0 KB
13
Indexable
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void unosDimenzije(int *m) {
        do {
                    printf("Unesi broj redova/stupaca (2-8): ");
                            scanf("%d", m);

                                    if (*m < 2 || *m > 8)
                                                printf("Neispravan unos!\n");

        } while (*m < 2 || *m > 8);
}

double** alocirajMatricu(int m) {
        double **mat = (double**)malloc(m * sizeof(double*));
            for (int i = 0; i < m; i++)
                    *(mat + i) = (double*)malloc(m * sizeof(double));

                        return mat;
}

void popuniMatricu(double **mat, int m) {
        for (int i = 0; i < m; i++)
                for (int j = 0; j < m; j++)
                            *(*(mat + i) + j) =
                                            -1.25 + (double)rand() / RAND_MAX * (5.75 + 1.25);
}

void ispisiMatricu(double **mat, int m) {
        for (int i = 0; i < m; i++) {
                    for (int j = 0; j < m; j++)
                                printf("%7.2lf ", *(*(mat + i) + j));
                                        printf("\n");
        }
}

double najveciElement(double **mat, int m) {
        double max = *(*mat);

            for (int i = 0; i < m; i++)
                    for (int j = 0; j < m; j++)
                                if (*(*(mat + i) + j) > max)
                                                max = *(*(mat + i) + j);

                                                    return max;
}

double iznadSporedne(double **mat, int m) {
        double max = -1000;

            for (int i = 0; i < m; i++)
                    for (int j = 0; j < m; j++)
                                if (i + j < m - 1)  // iznad sporedne dijagonale
                                                if (*(*(mat + i) + j) > max)
                                                                    max = *(*(mat + i) + j);

                                                                        return max;
}

void oslobodi(double **mat, int m) {
        for (int i = 0; i < m; i++)
                free(*(mat + i));

                    free(mat);
}

int main() {

        srand(time(NULL));

            int m;

                unosDimenzije(&m);

                    double **mat = alocirajMatricu(m);

                        popuniMatricu(mat, m);

                            printf("\nMatrica:\n");
                                ispisiMatricu(mat, m);

                                    printf("\nNajveci element: %.2lf\n",
                                               najveciElement(mat, m));

                                                   printf("Najveci iznad sporedne dijagonale: %.2lf\n",
                                                              iznadSporedne(mat, m));

                                                                  oslobodi(mat, m);

                                                                      return 0;
}
}
}
}
}
        }
}
}
}
        }
}
Editor is loading...
Leave a Comment