Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int **a, n, i, j, pom;
- while (1) {
- printf_s("Broj elemenata matrice: ");
- scanf_s("%d", &n);
- if (n <= 0)
- break;
- a = calloc(n, sizeof(int*));
- if (a == NULL)
- {
- printf_s("Greska pri alociranju memorije!");
- exit(1);
- }
- printf_s("\n Popunjavanje matrice: \n\n");
- for (i = 0; i<n; i++) {
- *(a + i) = calloc(n, sizeof(int));
- if (*(a + i) == NULL)
- {
- printf_s("Greska pri alociranju memorije!");
- exit(1);
- }
- for (j = 0; j < n;)
- {
- printf_s("Unesi %d . vrstu, %d . kolonu: ", i + 1, j + 1);
- scanf_s("%d", &pom);
- if (pom != 0 && pom != 1 && pom != 2)
- {
- printf_s("Greska, unesi opet: ");
- continue;
- }
- else {
- *(*(a + i) + j) = pom;
- }
- j++;
- }
- }
- printf_s("\nIspis matrice: \n\n");
- for (i = 0; i<n; i++) {
- for (j = 0; j < n; j++)
- {
- printf_s("| %d | ", *(*(a + i) + j));
- }
- printf_s("\n\n");
- }
- int pombr = 0;
- //iks oks - horizontalna provera
- for (i = 0; i<n; i++) {
- if (**(a + i) == 0)
- continue;
- pombr = 0;
- for (j = 0; j < n; j++)
- {
- if (*(*(a + i) + j) == **(a + i))
- {
- pombr++;
- }
- }
- if (pombr == n)
- {
- printf("Pobeda! %d . red, horizontalno!\n\n", i + 1);
- }
- }
- pombr = 0;
- //iks oks - vertikalna provera
- for (i = 0; i<n; i++) {
- if (*(*a + i) == 0)
- continue;
- pombr = 0;
- for (j = 0; j < n; j++)
- {
- //printf(" ELEMENT1: %d ELEMENT2: %d\n\n", *(*a + i), *(*(a + j) + i));
- if (*(*(a + j) + i) == *(*a + i))
- {
- pombr++;
- }
- }
- if (pombr == n)
- {
- printf("Pobeda! %d . red, vertikalno!\n\n", i + 1);
- }
- }
- //iks oks - dijagonala 1
- int pobeda = 0;
- if (**a != 0)
- {
- pobeda = 1;
- for (i = 0; i < n; i++) {
- if (*(*(a + i) + i) != **a)
- {
- pobeda = 0;
- break;
- }
- }
- }
- if (pobeda == 1)
- {
- printf("Pobeda! Glavna dijagonala! \n\n");
- }
- //iks oks - dijagonala 2
- pobeda = 0;
- if (**(a + n - 1) != 0)
- {
- pobeda = 1;
- for (i = 0; i < n; i++) {
- //printf(" Uporedjivanje: pocetna %d = trenutna %d \n\n", **(a + n - 1), *(*(a + n-i-1) + i));
- if (*(*(a + n - i - 1) + i) != **(a + n - 1))
- {
- pobeda = 0;
- break;
- }
- }
- }
- if (pobeda == 1)
- {
- printf("Pobeda! Sporedna dijagonala! \n\n");
- }
- for (i = 0; i<n; i++)
- free(a[i]);
- free(a);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement