Advertisement
Guest User

Untitled

a guest
Jan 19th, 2020
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.58 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #define MAX 3
  3. #include <stdio.h>
  4.  
  5. typedef int TMATRICA[][MAX];
  6.  
  7. void glavniMeni();
  8. void vratiBroj(int* broj);
  9. int daLiJeCetvorocifren(int broj);
  10. int daLiSuCifreSortirane(int broj);
  11. void zbirCifara(int broj, int *zbirCifara);
  12. void izbaciDuplikate(int x[], int* n);
  13. void ispisiNiz(int x[], int n);
  14. int maxIspodSporedne(TMATRICA mat, int n);
  15. void prikaziMatricu(TMATRICA mat, int n);
  16. void zamenaVrednosti(TMATRICA mat, int n, int zadataVrednost);
  17. void zadatak1();
  18. void zadatak2();
  19. void zadatak3();
  20.  
  21. int main(void) {
  22.  
  23. glavniMeni();
  24.  
  25. return 0;
  26. }
  27.  
  28. void glavniMeni()
  29. {
  30. int izbor;
  31. do {
  32. printf("1)\tPokreni zadatak 1.\n");
  33. printf("2)\tPokreni zadatak 2.\n");
  34. printf("3)\tPokreni zadatak 3.\n");
  35. printf("4)\tPokreni zadatak 4.\n");
  36. printf("5)\tPokreni zadatak 5.\n");
  37. printf("6)\tKraj\n\n");
  38. printf("\tVas izbor: ");
  39. scanf("%d", &izbor);
  40. getchar();
  41. switch (izbor)
  42. {
  43. case 1:
  44. zadatak1();
  45. break;
  46. case 2:
  47. zadatak2();
  48. break;
  49. case 3:
  50. zadatak3();
  51. break;
  52. case 4:
  53. break;
  54. case 5:
  55. break;
  56. case 6:
  57. printf("KRAJ PROGRAMA!");
  58. break;
  59. default:
  60. break;
  61. }
  62. } while (izbor != 6);
  63. }
  64. void vratiBroj(int* broj)
  65. {
  66. printf("Unesite broj: ");
  67. scanf("%d", broj);
  68. }
  69. int daLiJeCetvorocifren(int broj)
  70. {
  71. if (broj / 1000 == 0)
  72. return 0;
  73. return 1;
  74. }
  75. int daLiSuCifreSortirane(int broj)
  76. {
  77. int cifra, sledeca, brojac = 0;
  78. while (broj != 0) {
  79. cifra = broj % 10;
  80. broj /= 10;
  81. sledeca = broj % 10;
  82. if (cifra < sledeca)
  83. brojac++;
  84. }
  85. if (brojac == 3)
  86. return 1;
  87. return 0;
  88. }
  89. void zbirCifara(int broj, int* zbirCifara)
  90. {
  91. while (broj != 0) {
  92. (*zbirCifara) += (broj % 10);
  93. broj /= 10;
  94. };
  95. }
  96. void izbaciDuplikate(int x[], int* n)
  97. {
  98. for (int i = 0; i < (*n); i++) {
  99. for (int j = i + 1; j < (*n); j++) {
  100. if (x[i] == x[j]) {
  101. for (int k = j + 1; k < (*n); k++) {
  102. x[j] = x[k];
  103. }
  104. (*n)--;
  105. }
  106. }
  107. }
  108. }
  109. void ispisiNiz(int x[], int n)
  110. {
  111. printf("Niz: ");
  112. for (int i = 0; i < n; i++) {
  113. printf("%4d%4", x[i]);
  114. }
  115. printf("\n");
  116. }
  117. int maxIspodSporedne(TMATRICA mat, int n)
  118. {
  119. int max = 0;
  120. for (int i = 0; i < n; i++) {
  121. for (int j = 0; j < n; j++) {
  122. if (i + j > n&& max < mat[i][j])
  123. max = mat[i][j];
  124. }
  125. }
  126. return max;
  127. }
  128. void prikaziMatricu(TMATRICA mat, int n)
  129. {
  130. for (int i = 0; i < n; i++) {
  131. for (int j = 0; j < n; j++) {
  132. printf("%3d%3", mat[i][j]);
  133. }
  134. printf("\n");
  135. }
  136. }
  137. void zamenaVrednosti(TMATRICA mat, int n, int zadataVrednost)
  138. {
  139. for (int i = 0; i < n; i++) {
  140. for (int j = 0; j < n; j++) {
  141. if (i + j > n)
  142. mat[i][j] = zadataVrednost;
  143. }
  144. }
  145. }
  146. void zadatak1()
  147. {
  148. int zbir_Cifara = 0;
  149. int broj;
  150. int max_zbir = 0;
  151. int max = 0;
  152. char izbor;
  153. do {
  154. vratiBroj(&broj);
  155. zbirCifara(broj, &zbir_Cifara);
  156. if ((daLiJeCetvorocifren(broj) == 1) && ((daLiSuCifreSortirane(broj)) == 1) && (zbir_Cifara > max_zbir))
  157. max = broj;
  158. printf("Da li zelite jos da unesete broj? (+/-): ");
  159. getchar();
  160. scanf("%c", &izbor);
  161. } while (izbor != '-');
  162. printf("\nNajveci uneti cetvorocifreni broj koji je u rastucem redosledu je: %d\n\n\n", max);
  163. }
  164. void zadatak2()
  165. {
  166. int niz[8] = { 3, 5, 7, 3, 2, 7, 3, 1 };
  167. int n = 8;
  168. ispisiNiz(niz, n);
  169. izbaciDuplikate(niz, &n);
  170. ispisiNiz(niz, n);
  171. }
  172.  
  173. void zadatak3()
  174. {
  175. int zadata;
  176. int matrica[3][3] = { {1,2,3},{4,5,6},{7,8,9} };
  177. prikaziMatricu(matrica, 3);
  178. printf("Najveci element ispod sporedne dijagonale je: %d\n", zadata = maxIspodSporedne(matrica, 3));
  179. zamenaVrednosti(matrica, 3, zadata);
  180. prikaziMatricu(matrica, 3);
  181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement