Advertisement
Mixilino

priprema klk 1,2,3,4,6 zad fali 5 posle cu sad me mrzi

Apr 20th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.86 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. typedef int ARRAY_100[100];
  4.  
  5. int uporedi(int a, int b);
  6. void zadatak1(void);
  7.  
  8. void srv(int n, int zadatiBroj, float* srv);
  9. void zadatak2(void);
  10.  
  11. void postoji(int X[], int n, int broj, int *pozicija);
  12. void izbaci(int X[], int *n, int position);
  13. void prikazNiy(int X[], int n);
  14. void zadatak3(void) {
  15.     int X[] = { 1,3,4,5,3,3,2,1,2,4,6 };
  16.     int n = 11;
  17.     int pozicija;
  18.     printf("\nNiz sa duplikatima je:");
  19.     prikazNiy(X, n);
  20.     for (int i = 0; i < n; i++)
  21.     {
  22.         postoji(X, n, X[i], &pozicija);
  23.         if (pozicija != i) {
  24.             izbaci(X, &n, pozicija);
  25.             i--;
  26.         }
  27.     }
  28.     printf("\nNiz bez duplikata je:");
  29.     prikazNiy(X, n);
  30. }
  31.  
  32. int nadjiNajveciParniElementNiza(ARRAY_100 x, int n);
  33. void sortirajNiz(ARRAY_100 x, int n);
  34. void ubaciNoviElementUSortiranomRedosledu(ARRAY_100 x, int *n, int noviEl);
  35. void prikaziNiz(ARRAY_100 x, int n);
  36. void zadatak4(void);
  37.  
  38.  
  39.  
  40. void glavniMeni(void);
  41.  
  42. int main(void) {
  43.     glavniMeni();
  44.     return 0;
  45. }
  46.  
  47. int uporedi(int a, int b)
  48. {
  49.     if (a == b) {
  50.         return 0;
  51.     }
  52.     else if (a > b) {
  53.         return 1;
  54.     }
  55.     else {
  56.         return -1;
  57.     }
  58. }
  59.  
  60. void zadatak1(void)
  61. {
  62.     int n = 3;
  63.     int i = 0;
  64.     int x, y, status;
  65.     while (i < n) {
  66.         printf("Unesite dva broja\n");
  67.         scanf("%d %d", &x, &y);
  68.         status = uporedi(x, y);
  69.         if (status == 1) {
  70.             printf("Broj (%d) je veci od broja (%d)\n", x, y);
  71.         }
  72.         else if (status == 0) {
  73.             printf("Broj (%d) je jednak broju (%d)\n", x, y);
  74.         }
  75.         else{
  76.             printf("Broj (%d) je manji od broja (%d)\n", x, y);
  77.         }
  78.         i++;
  79.     }
  80. }
  81.  
  82. void srv(int n, int zadatiBroj, float * srv)
  83. {
  84.     *srv = 0.0;
  85.     int x, i = 0, suma = 0, brojac = 0;
  86.     while (i < n) {
  87.         scanf("%d", &x);
  88.         if (x % zadatiBroj == 0) {
  89.             suma += x;
  90.             brojac++;
  91.         }
  92.         i++;
  93.     }
  94.     if (brojac > 0) {
  95.         *srv = (float)suma / brojac;
  96.     }
  97. }
  98.  
  99. void zadatak2(void)
  100. {
  101.     int n, zadatiBroj;
  102.     float srve;
  103.     printf("Unesite n: ");
  104.     scanf("%d", &n);
  105.     printf("Unesite zadatiBroj: ");
  106.     scanf("%d", &zadatiBroj);
  107.     srv(n, zadatiBroj, &srve);
  108.     printf("Ukupan broj unetih brojeva je (%d), a srednja vrednost unetih brojeva deljivih sa (%d) je: (%.2f)", n, zadatiBroj, srve);
  109.  
  110. }
  111.  
  112. void postoji(int X[], int n, int broj, int * pozicija)
  113. {
  114.     for (int i = 0; i < n; i++)
  115.     {
  116.         if (X[i] == broj) {
  117.             *pozicija = i;
  118.         }
  119.     }
  120. }
  121.  
  122. void izbaci(int X[], int * n, int position)
  123. {
  124.     for (int i = position; i < *n; i++)
  125.     {
  126.         X[i] = X[i + 1];
  127.     }
  128.     (*n)--;
  129. }
  130.  
  131. void prikazNiy(int X[], int n)
  132. {
  133.     for (int i = 0; i < n; i++)
  134.     {
  135.         printf("X[%d] = %d\t", i, X[i]);
  136.     }
  137.     printf("\n");
  138. }
  139.  
  140.  
  141.  
  142. int nadjiNajveciParniElementNiza(ARRAY_100 x, int n)
  143. {
  144.     int max;
  145.     int temp = 0;
  146.     for (int i = 0; i < n; i++)
  147.     {
  148.         if (x[i] % 2 == 0 && temp == 0) {
  149.             max = x[i];
  150.         }
  151.         else if (x[i] % 2 == 0 && temp && max < x[i]) {
  152.             max = x[i];
  153.         }
  154.     }
  155.     return max;
  156. }
  157.  
  158. void sortirajNiz(ARRAY_100 x, int n)
  159. {
  160.         int i, j;
  161.         for (i = 0; i < n - 1; i++) {
  162.             // Last i elements are already in place    
  163.             for (j = 0; j < n - i - 1; j++) {
  164.                 if (x[j] > x[j + 1]) {
  165.                     x[j] = x[j] ^ x[j + 1];
  166.                     x[j + 1] = x[j] ^ x[j + 1];
  167.                     x[j] = x[j] ^ x[j + 1];
  168.                 }
  169.             }
  170.         }
  171.    
  172. }
  173.  
  174. void ubaciNoviElementUSortiranomRedosledu(ARRAY_100 x, int * n, int noviEl)
  175. {
  176.     int pom;
  177.     for (int i = 0; i <= (*n); i++)
  178.     {
  179.         if (x[i] >= noviEl || i==*n) {
  180.             pom = x[i];
  181.             x[i] = noviEl;
  182.             noviEl = pom;
  183.         }
  184.     }
  185.     (*n)++;
  186.    
  187. }
  188.  
  189. void prikaziNiz(ARRAY_100 x, int n)
  190. {
  191.     for (int i = 0; i < n; i++)
  192.     {
  193.         printf("X[%d] = %d\t", i, x[i]);
  194.     }
  195.     printf("\n");
  196. }
  197.  
  198. void zadatak4(void)
  199. {
  200.     ARRAY_100 x = { 1,5,0,5,6 };
  201.     int n = 5, status = 1, y;
  202.     while (status != 0) {
  203.         printf("\nIzaberite koju funkciju zelite da pozovete: \n");
  204.         printf("1. nadjiNajveciParniElement: \n");
  205.         printf("2. sortirajNiz: \n");
  206.         printf("3. ubaciNoviElementUSortiranomRedosledu: \n");
  207.         printf("4. prikaziNiz: \n");
  208.         printf("0. Kraj! ");
  209.         scanf("%d", &status);
  210.         switch (status) {
  211.         case 1:
  212.             printf("Najveci parni element je (%d)\n", nadjiNajveciParniElementNiza(x, n));
  213.             break;
  214.         case 2:
  215.             sortirajNiz(x, n);
  216.             break;
  217.         case 3:
  218.             printf("Unesite broj koji zelite da ubacite u niz: ");
  219.             scanf("%d", &y);
  220.             sortirajNiz(x, n);
  221.             ubaciNoviElementUSortiranomRedosledu(x, &n, y);
  222.             break;
  223.         case 4:
  224.             prikaziNiz(x, n);
  225.             break;
  226.         case 0:
  227.             break;
  228.         default:
  229.             printf("Ne postoji trazena funkcija!\n");
  230.         }
  231.     }
  232. }
  233.  
  234. void glavniMeni(void)
  235. {
  236.     int x = 3;
  237.     printf("1. Pokreni zadatak 1\n");
  238.     printf("2. Pokreni zadatak 2\n");
  239.     printf("3. Pokreni zadatak 3\n");
  240.     printf("4. Pokreni zadatak 4\n");
  241.     printf("6. Kraj rada:\n");
  242.     while (x!=6) {
  243.         printf("\nVas unos: ");
  244.         scanf("%d", &x);
  245.         switch (x) {
  246.         case 1:
  247.             zadatak1();
  248.             break;
  249.         case 2:
  250.             zadatak2();
  251.             break;
  252.         case 3:
  253.             zadatak3();
  254.             break;
  255.         case 4:
  256.             zadatak4();
  257.             break;
  258.         case 6:
  259.             printf("Kraj programa\n");
  260.             break;
  261.         default:
  262.             printf("Los unos\n");
  263.         }
  264.     }
  265. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement