borisdexter

Matrici 2

Jan 8th, 2020
364
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.60 KB | None | 0 0
  1. // glavna i==j, nad glavna i<j, pod glavna i>j
  2. // sporedna i+j==n-1, nad sporedna i+j<n-1, pod sporedna i+j>n-1
  3. // sosedi - gore matrica[i-1][j], dole matrica[i+1][j], levo matrica[i][j-1], desno matrica[i][j+1]
  4. // granici - gore i>0, dole i<n-1, levo j>0, desno j<n-1
  5. // kosi sosedi - gore-desno matrica[i-1][j+1], gore-levo matrica[i-1][j-1], dole-desno matrica[i+1][j+1], dole-levo matrica[i+1][j-1]
  6. // kosi granici - kombinirame dve granici primer gore-desno = gore && desno
  7.  
  8. /*
  9. j==0 j==n-1
  10.  
  11. 1 2 3 4 1 i==0
  12. 5 6 8 9 2
  13. 1 2 3 4 3
  14. 3 4 5 6 4
  15. 3 8 7 6 4 i==n-1
  16. */
  17.  
  18.  
  19. int daliProst(int x){
  20. int delitel;
  21. for(delitel=2;delitel<=x/2;delitel++){
  22. if(x%delitel==0){
  23. return 0;
  24. }
  25. }
  26. return 1;
  27. }
  28.  
  29. int main(){
  30. int n,i,j;
  31. scanf("%d",&n);
  32. int matrica[n][n];
  33. int i1,j1,k,m;
  34. scanf("%d%d",&i1,&j1);
  35. int n2;
  36. scanf("%d",&n2);
  37. int matrica2[n2][n2];
  38. for(i=0;i<n;i++){
  39. for(j=0;j<n;j++){
  40. scanf("%d",&matrica[i][j]);
  41. }
  42. }
  43.  
  44. // n=5, n2=2, i1=2, j1=1
  45. // dali moze tolkava podmatrica / granici
  46. if(i1>=0 && j1>=0 && i1+n2<=n && j1+n2<=n){
  47. for(k=0;k<n2;k++){
  48. for(m=0;m<n2;m++){
  49. matrica2[k][m]=matrica[i1+k][j1+m];
  50. }
  51. }
  52. }else{
  53. printf("Ne moze tolkava podmatrica\n");
  54. }
  55.  
  56. for(i=0;i<n2;i++){
  57. for(j=0;j<n2;j++){
  58. printf("%d ",matrica2[i][j]);
  59. }
  60. printf("\n");
  61. }
  62. return 0;
  63. }
  64.  
  65. // regioni spored vnesen index
  66. /*
  67. int suma1=0;
  68. int suma2=0;
  69. int suma3=0;
  70. int suma4=0;
  71.  
  72. for(i=0;i<n;i++){
  73. for(j=0;j<n;j++){
  74. // prv region
  75. if(i<i1 && j<=j1){
  76. suma1+=matrica[i][j];
  77. }
  78. // vtor region
  79. if(i>=i1 && j<=j1){
  80. suma2+=matrica[i][j];
  81. }
  82. // tret region
  83. if(i<i1 && j>j1){
  84. suma3+=matrica[i][j];
  85. }
  86. // cetvrt region
  87. if(i>=i1 && j>j1){
  88. suma4+=matrica[i][j];
  89. }
  90. }
  91. }
  92.  
  93. if(suma1 > suma2 && suma1 > suma3 && suma1 > suma4){
  94. printf("Suma1 e najgolema %d\n",suma1);
  95. }
  96. return 0;
  97. }
  98. */
  99.  
  100.  
  101. /*
  102. // dali sekoj ima barem 1 neparen sosed
  103. int baremEdenSosed=0;
  104. for(i=0;i<n;i++){
  105. for(j=0;j<n;j++){
  106. baremEdenSosed=0;
  107. // gore sosed matrica[i-1][j]
  108. if(i>0 && matrica[i-1][j]%2==1){
  109. baremEdenSosed=1;
  110. }
  111. // gore-desno sosed matrica[i-1][j+1]
  112. if(i>0 && j<n-1 && matrica[i-1][j+1]%2==1){
  113. baremEdenSosed=1;
  114. }
  115. // gore-levo sosed matrica[i-1][j-1]
  116. if(i>0 && j>0 && matrica[i-1][j-1]%2==1){
  117. baremEdenSosed=1;
  118. }
  119. // dole sosed
  120. if(i<n-1 && matrica[i+1][j]%2==1){
  121. baremEdenSosed=1;
  122. }
  123. // dole-levo sosed matrica[i+1][j-1]
  124. if(i<n-1 && j>0 && matrica[i+1][j-1]%2==1){
  125. baremEdenSosed=1;
  126. }
  127. // dole-desno sosed matrica[i+1][j+1]
  128. if(i<n-1 && j<n-1 && matrica[i+1][j+1]%2==1){
  129. baremEdenSosed=1;
  130. }
  131. // levo sosed
  132. if(j>0 && matrica[i][j-1]%2==1){
  133. baremEdenSosed=1;
  134. }
  135. // desno sosed
  136. if(j<n-1 && matrica[i][j+1]%2==1){
  137. baremEdenSosed=1;
  138. }
  139. pom[i][j]=baremEdenSosed;
  140. }
  141. }
  142. */
  143.  
  144. // regioni spored dijagonali
  145. /*
  146. int reg1=0;
  147. int reg2=0;
  148. int reg3=0;
  149. int reg4=0;
  150.  
  151. for(i=0;i<n;i++){
  152. for(j=0;j<n;j++){
  153. // prv region
  154. if(i<j && i+j<n-1){
  155. if(daliProst(matrica[i][j])){
  156. reg1++;
  157. }
  158. }
  159. // vtor region
  160. if(i>j && i+j<n-1){
  161. if(daliProst(matrica[i][j])){
  162. reg2++;
  163. }
  164. }
  165. // tret region
  166. if(i>j && i+j>n-1){
  167. if(daliProst(matrica[i][j])){
  168. reg3++;
  169. }
  170. }
  171. // cetvrt region
  172. if(i<j && i+j>n-1){
  173. if(daliProst(matrica[i][j])){
  174. reg4++;
  175. }
  176. }
  177. }
  178. }
  179. if(reg1!=0 && reg2!=0 && reg3!=0 && reg4!=0){
  180. printf("Dobra e matricata\n");
  181. }else{
  182. printf("Nema dovolno prosti broevi vo sekoj region\n");
  183. }
  184.  
  185.  
  186.  
  187. int brojacNad=0;
  188. int brojacPod=0;
  189. for(i=0;i<n;i++){
  190. for(j=0;j<n;j++){
  191. // nad glavna i neparen
  192. if(i<j && matrica[i][j]%2==1){
  193. brojacNad++;
  194. }else if(i>j && matrica[i][j]%2==1){
  195. brojacPod++;
  196. }
  197. // nad sporedna i neparen
  198. if(i+j<n-1 && matrica[i][j]%2==1){
  199. brojacNad++;
  200. }else if(i+j>n-1 && matrica[i][j]%2==1){
  201. brojacPod++;
  202. }
  203.  
  204. }
  205. }
  206. printf("Nad glavna %d, pod glavna %d\n",brojacNad,brojacPod);
  207. */
Advertisement
Add Comment
Please, Sign In to add comment