Advertisement
MartinSRB

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

Mar 22nd, 2023 (edited)
950
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.64 KB | Source Code | 0 0
  1. /*
  2.     -- Predmet: Namenski racunarski sistemi --
  3.     -- Zadatak 2 -- Vezbe 8 --
  4.     -- Autor: Martin Muharemovic -- PR130-2021 --
  5. */
  6.  
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9.  
  10. typedef int provera(int);
  11.  
  12. int pozitivan(int a){
  13.     return a >= 0;
  14. }
  15.  
  16. int negativan(int a){
  17.     return a < 0;
  18. }
  19.  
  20. int* izdvoj(int* buffer, provera* f){
  21.     int n       = *buffer, //buffer[0]
  22.         i,
  23.         counter = 0;
  24.     for(i = 1; i <= n; i++){
  25.         if(f(buffer[i])){
  26.             counter++;
  27.         }
  28.     }
  29.     int* ret = (int*)malloc((counter + 1) * sizeof(int));
  30.     int inx  = 1;
  31.     *ret     = counter;
  32.     for(i = 1; i <= n; i++){
  33.         if(f(buffer[i])){
  34.             ret[inx++] = buffer[i];
  35.         }
  36.     }
  37.     return ret;
  38. }
  39.  
  40. int main(){
  41.     int n,
  42.         *buffer,
  43.         i;
  44.     printf("Unesite broj elemenata niza: ");
  45.     scanf("%d", &n);
  46.     buffer  = (int*)malloc((n + 1) * sizeof(int));
  47.     *buffer = n;
  48.     for(i = 1; i <= n; i++){
  49.         printf("\nUnos %d. elementa: ", i);
  50.         scanf("%d", &buffer[i]); //&buffer[i]
  51.     }
  52.     int *pozitivni,
  53.         *negativni,
  54.         j;
  55.     pozitivni = izdvoj(buffer, pozitivan);
  56.     negativni = izdvoj(buffer, negativan);
  57.     j = *pozitivni; //koristice se kao broj elemenata iz nizova pozitivni i negativni
  58.     printf("\nIspis pozitivnih:\n");
  59.     for(i = 1; i <= j; i++){
  60.         printf("Element[%d]: %d\n", i, pozitivni[i]);
  61.     }
  62.     printf("\nIspis negativnih\n");
  63.     j = *negativni;
  64.     for(i = 1; i <= j; i++){
  65.         printf("Element[%d]: %d\n", i, negativni[i]);
  66.     }
  67.     free(buffer);
  68.     free(negativni);
  69.     free(pozitivni);
  70.     return EXIT_SUCCESS;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement