Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- -- Predmet: Namenski racunarski sistemi --
- -- Zadatak 2 -- Vezbe 8 --
- -- Autor: Martin Muharemovic -- PR130-2021 --
- */
- #include <stdio.h>
- #include <stdlib.h>
- typedef int provera(int);
- int pozitivan(int a){
- return a >= 0;
- }
- int negativan(int a){
- return a < 0;
- }
- int* izdvoj(int* buffer, provera* f){
- int n = *buffer, //buffer[0]
- i,
- counter = 0;
- for(i = 1; i <= n; i++){
- if(f(buffer[i])){
- counter++;
- }
- }
- int* ret = (int*)malloc((counter + 1) * sizeof(int));
- int inx = 1;
- *ret = counter;
- for(i = 1; i <= n; i++){
- if(f(buffer[i])){
- ret[inx++] = buffer[i];
- }
- }
- return ret;
- }
- int main(){
- int n,
- *buffer,
- i;
- printf("Unesite broj elemenata niza: ");
- scanf("%d", &n);
- buffer = (int*)malloc((n + 1) * sizeof(int));
- *buffer = n;
- for(i = 1; i <= n; i++){
- printf("\nUnos %d. elementa: ", i);
- scanf("%d", &buffer[i]); //&buffer[i]
- }
- int *pozitivni,
- *negativni,
- j;
- pozitivni = izdvoj(buffer, pozitivan);
- negativni = izdvoj(buffer, negativan);
- j = *pozitivni; //koristice se kao broj elemenata iz nizova pozitivni i negativni
- printf("\nIspis pozitivnih:\n");
- for(i = 1; i <= j; i++){
- printf("Element[%d]: %d\n", i, pozitivni[i]);
- }
- printf("\nIspis negativnih\n");
- j = *negativni;
- for(i = 1; i <= j; i++){
- printf("Element[%d]: %d\n", i, negativni[i]);
- }
- free(buffer);
- free(negativni);
- free(pozitivni);
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement