Advertisement
Guest User

dz2mod

a guest
Apr 25th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. int main()
  5. {
  6. int **a, n, i, j, pom, broj1, broj2;
  7. srand(time);
  8. while (1) {
  9. printf_s("Broj elemenata matrice: ");
  10. scanf_s("%d", &n);
  11. if (n <= 0)
  12. break;
  13. a = calloc(n, sizeof(int*));
  14. if (a == NULL)
  15. {
  16. printf_s("Greska pri alociranju memorije!");
  17. exit(1);
  18. }
  19. for (i = 0; i<n; i++) {
  20. *(a + i) = calloc(n, sizeof(int));
  21. if (*(a + i) == NULL)
  22. {
  23. printf_s("Greska pri alociranju memorije!");
  24. exit(1);
  25. }
  26.  
  27. for (j = 0; j < n;)
  28. {
  29. *(*(a + i) + j) = rand() / (double)RAND_MAX*(3);
  30. j++;
  31. }
  32. }
  33. printf_s("\nIspis matrice: \n\n");
  34. for (i = 0; i<n; i++) {
  35. for (j = 0; j < n; j++)
  36. {
  37. printf_s("| %d | ", *(*(a + i) + j));
  38. }
  39. printf_s("\n\n");
  40. }
  41.  
  42. int pombr = 0;
  43. //iks oks - horizontalna provera
  44. for (i = 0; i<n; i++) {
  45. if (**(a + i) == 0)
  46. continue;
  47. pombr = 0;
  48. for (j = 0; j < n; j++)
  49. {
  50. if (*(*(a + i) + j) == **(a + i))
  51. {
  52. pombr++;
  53. }
  54. }
  55. if (pombr == n)
  56. {
  57.  
  58. printf("Pobeda! %d . red, horizontalno!\n\n", i + 1);
  59. }
  60.  
  61. }
  62.  
  63. pombr = 0;
  64. //iks oks - vertikalna provera
  65. for (i = 0; i<n; i++) {
  66. if (*(*a + i) == 0)
  67. continue;
  68. pombr = 0;
  69. for (j = 0; j < n; j++)
  70. {
  71. //printf(" ELEMENT1: %d ELEMENT2: %d\n\n", *(*a + i), *(*(a + j) + i));
  72. if (*(*(a + j) + i) == *(*a + i))
  73. {
  74. pombr++;
  75. }
  76. }
  77. if (pombr == n)
  78. {
  79.  
  80. printf("Pobeda! %d . red, vertikalno!\n\n", i + 1);
  81. }
  82. }
  83. //iks oks - dijagonala 1
  84. int pobeda = 0;
  85. if (**a != 0)
  86. {
  87. pobeda = 1;
  88. for (i = 0; i < n; i++) {
  89. if (*(*(a + i) + i) != **a)
  90. {
  91. pobeda = 0;
  92. break;
  93. }
  94.  
  95. }
  96.  
  97. }
  98. if (pobeda == 1)
  99. {
  100. printf("Pobeda! Glavna dijagonala! \n\n");
  101. }
  102. //iks oks - dijagonala 2
  103. pobeda = 0;
  104. if (**(a + n - 1) != 0)
  105. {
  106. pobeda = 1;
  107. for (i = 0; i < n; i++) {
  108. //printf(" Uporedjivanje: pocetna %d = trenutna %d \n\n", **(a + n - 1), *(*(a + n-i-1) + i));
  109. if (*(*(a + n - i - 1) + i) != **(a + n - 1))
  110. {
  111. pobeda = 0;
  112. break;
  113. }
  114. }
  115. }
  116. if (pobeda == 1)
  117. {
  118. printf("Pobeda! Sporedna dijagonala! \n\n");
  119. }
  120.  
  121. for (i = 0; i<n; i++)
  122. free(a[i]);
  123. free(a);
  124.  
  125. }
  126. return 0;
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement