MartinSRB

[НРС] Вежбе 2 - Задатак 2

Mar 29th, 2023 (edited)
1,034
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.55 KB | Source Code | 0 0
  1. /*
  2.     Predmet: Namenski racunarski sistemi
  3.     Zadatak 2, vezbe 2
  4.     Autor: PR130-2021 Martin Muharemovic
  5. */
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8.  
  9. int *CalculateMinMax(char *);
  10.  
  11. int main()
  12. {
  13.     short n;
  14.     int i;
  15.     do
  16.     {
  17.         printf("Unesite broj clanova niza: ");
  18.         scanf("%hd", &n);
  19.     } while (n <= 0);
  20.     char *buffer = (char *)malloc(sizeof(short) + n * sizeof(int));
  21.     *buffer = n;
  22.     for (i = sizeof(short); i < sizeof(short) + n * sizeof(int); i += sizeof(int))
  23.     {
  24.         printf("Unos %llu elementa niza: ", (i - sizeof(short)) / sizeof(int));
  25.         scanf("%d", buffer + i);
  26.     }
  27.     int *ret = CalculateMinMax(buffer);
  28.     printf("Najmanji element niza je %d, a najveci element niza je %d.", *ret, *(ret + sizeof(int)));
  29.     free(ret);
  30.     free(buffer);
  31.     return EXIT_SUCCESS;
  32. }
  33.  
  34. int *CalculateMinMax(char *buffer)
  35. {
  36.     short n = *buffer;
  37.     int i,
  38.         *ret = (int *)malloc(2 * sizeof(int));
  39.     int tmp = *(buffer + sizeof(short));
  40.     /* TRAZENJE MINIMALNOG */
  41.     for (i = sizeof(short) + sizeof(int); i < sizeof(short) + n * sizeof(int); i += sizeof(int))
  42.     {
  43.         if (*(buffer + i) < tmp)
  44.         {
  45.             tmp = *(buffer + i);
  46.         }
  47.     }
  48.     *ret = tmp;
  49.     /* TRAZENJE MAKSIMUMA */
  50.     tmp = *(buffer + sizeof(short));
  51.     for (i = sizeof(short) + sizeof(int); i < sizeof(short) + n * sizeof(int); i += sizeof(int))
  52.     {
  53.         if (*(buffer + i) > tmp)
  54.         {
  55.             tmp = *(buffer + i);
  56.         }
  57.     }
  58.     *(ret + sizeof(int)) = tmp;
  59.     return ret;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment