Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdarg.h>
- #include <string.h>
- #include <math.h>
- void serija(int *niz, int n, int(*s)(int), int **pocetak, int *duzina);
- int paran(int n);
- int pozitivan(int n);
- int main()
- {
- int n, *niz;
- do
- {
- printf("Unesite n: ");
- scanf("%d", &n);
- } while (n < 1);
- niz = (int *)calloc(n, sizeof(int));
- for (int i = 0; i < n; i++)
- {
- printf("Unesite %d. clan niza: ", i + 1);
- scanf("%d", niz + i);
- }
- int **pocetak =(int **)calloc(n, sizeof(int*));
- int *duzina;
- //ispis trazenog zadatka
- printf("Najduza serija parnog ponavljanja: ");
- serija(niz, n, (*paran), &pocetak, &duzina);
- for (int k = 0; k < duzina; k++)
- {
- printf("%d", *(pocetak+k));
- }
- printf("\n");
- printf("Najduza serija pozitivnih brojeva: ");
- serija(niz, n, (*pozitivan), &pocetak, &duzina);
- for (int k = 0; k < duzina; k++)
- {
- printf("%d", *(pocetak + k));
- }
- free(niz);
- //free(pocetak);
- return 0;
- }
- void serija(int *niz, int n, int(*s)(int), int **pocetak, int *duzina)
- {
- int max = 0, temp = 0, j = 0, ok = 0;
- for (int i = 0; i < n; i++)
- {
- for (ok = i; (*s)(niz[i]) == 1; i++, j++);
- if (j > max)
- {
- max = j; //
- temp = ok; // cuvanje index-a odakle krece najduza serija parnih/pozitivnih
- j = 0;
- i--;
- }
- else j = 0;
- }
- *pocetak = &niz[temp];
- *duzina = max;
- }
- int paran(int x)
- {
- if (x % 2 == 0)
- return 1;
- else return 0;
- }
- int pozitivan(int x)
- {
- if (x > 0)
- return 1;
- else return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement