Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- void main() {
- while (1) {
- int n, m, **a, i, j, high, low, unos, postoji = 0;
- srand(time(NULL));
- printf("Unesite broj vrsta, za kraj unosa unesite broj manji od 1: \n");
- scanf("%d", &m);
- if (m < 1) break;
- while (1) {
- printf("Unesite broj kolona: \n");
- scanf("%d", &n);
- if (n < 1) printf("Pogresan unos.\n");
- else break;
- }
- a = malloc(m*sizeof(int*));
- if (a == NULL) exit(0);
- printf("Za samostalni unos matrice unesite 0, za popunjavanje matrice pseudoslucajnim brojevima unesite bilo koji ceo broj razlicit od 0\n");
- scanf("%d", &unos);
- switch (unos) {
- /*Unos matrice od strane korisnika*/
- case 0: {
- printf("Unesite elemente matrice\n");
- for (i = 0; i < m; i++) {
- *(a + i) = malloc(n*sizeof(int));
- if (*(a + i) == NULL) exit(0);
- for (j = 0; j < n; j++)
- scanf("%d", &a[i][j]);
- }
- break;
- }
- default: {
- /*Unos matrice pseudoslucajnim brojevima*/
- /*Unos opsega elemenata matrice*/
- while (1) {
- printf("Unesite opseg elemenata kojim zelite da matrica bude popunjena, prvo minimum pa maksimum\n");
- scanf("%d%d", &low, &high);
- if (low > high) printf("Neispravan unos, minimum mora biti manji od maksimuma\n");
- else break;
- }
- for (i = 0; i < m; i++) {
- *(a + i) = malloc(n*sizeof(int));
- if (*(a + i) == NULL) exit(0);
- for (j = 0; j < n; j++)
- a[i][j] = rand() / ((double)RAND_MAX)*(high - low) + low;
- }
- /*Ispis matrice pseudoslucajnih brojeva*/
- printf("Matrica slucajnih brojeva:\n\n");
- for (i = 0; i < m; i++)
- for (j = 0; j < n; j++) {
- printf("%d ", a[i][j]);
- if (j == (n - 1)) printf("\n");
- }
- }/*Kraj defaulta*/
- }/*Kraj switch-a*/
- printf("Broj/evi najveci u svojoj vrsti i koloni je/su:\n");
- /*Trazenje lokacije zeljenog broja*/
- for (i = 0; i < m; i++) {
- int n_naj = 0, najveci, *naj, *naj_novi, check = 1, l, k;
- /*Provera vrsta*/
- najveci = a[i][0];
- naj = malloc(sizeof(int));
- if (naj == NULL) exit(0);
- else naj[n_naj++] = 0;
- for (j = 1; j < n; j++) {
- if (a[i][j]>najveci) { /*1. if*/
- najveci = a[i][j];
- n_naj = 0;
- free(naj);
- naj = malloc(sizeof(int));
- if (naj == NULL) exit(0);
- /*2. if*/
- else naj[n_naj++] = j;
- } /*Kraj 2. ifa*/
- else if (a[i][j] == najveci) {
- naj_novi = realloc(naj, (n_naj + 1) * sizeof(int));
- if (naj_novi == NULL) exit(0);
- else {
- naj = naj_novi;
- naj[n_naj++] = j;
- }
- }
- } /*Kraj "j" for-a*/
- /*Provera kolona*/
- for (k = 0; k < n_naj; k++) {
- for (l = 0; l < m; l++)
- if (a[l][naj[k]]>najveci) {
- check = 0;
- break;
- }
- if (check == 1) printf("(%d,%d) ", i + 1, naj[k] + 1);
- } /*Kraj "k" for-a*/
- free(naj);
- } /*Kraj "i" for-a*/
- printf("\n");
- for (i = m - 1; i >= 0; i--) free(*(a + i));
- free(a);
- } /*Kraj 1. while-a*/
- } /*Kraj programa*/
Add Comment
Please, Sign In to add comment