Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdarg.h>
  4. #include <string.h>
  5. #include <math.h>
  6.  
  7. void serija(int *niz, int n, int(*s)(int), int **pocetak, int *duzina);
  8. int paran(int n);
  9. int pozitivan(int n);
  10. int main()
  11. {
  12.  
  13. int n, *niz;
  14.  
  15. do
  16. {
  17. printf("Unesite n: ");
  18. scanf("%d", &n);
  19. } while (n < 1);
  20.  
  21. niz = (int *)calloc(n, sizeof(int));
  22. for (int i = 0; i < n; i++)
  23. {
  24. printf("Unesite %d. clan niza: ", i + 1);
  25. scanf("%d", niz + i);
  26. }
  27.  
  28.  
  29. int **pocetak =(int **)calloc(n, sizeof(int*));
  30. int *duzina;
  31.  
  32. //ispis trazenog zadatka
  33. printf("Najduza serija parnog ponavljanja: ");
  34. serija(niz, n, (*paran), &pocetak, &duzina);
  35. for (int k = 0; k < duzina; k++)
  36. {
  37. printf("%d", *(pocetak+k));
  38. }
  39.  
  40. printf("\n");
  41. printf("Najduza serija pozitivnih brojeva: ");
  42. serija(niz, n, (*pozitivan), &pocetak, &duzina);
  43. for (int k = 0; k < duzina; k++)
  44. {
  45. printf("%d", *(pocetak + k));
  46. }
  47.  
  48. free(niz);
  49. //free(pocetak);
  50. return 0;
  51. }
  52.  
  53. void serija(int *niz, int n, int(*s)(int), int **pocetak, int *duzina)
  54. {
  55. int max = 0, temp = 0, j = 0, ok = 0;
  56. for (int i = 0; i < n; i++)
  57. {
  58. for (ok = i; (*s)(niz[i]) == 1; i++, j++);
  59. if (j > max)
  60. {
  61. max = j; //
  62. temp = ok; // cuvanje index-a odakle krece najduza serija parnih/pozitivnih
  63. j = 0;
  64. i--;
  65. }
  66. else j = 0;
  67. }
  68.  
  69. *pocetak = &niz[temp];
  70. *duzina = max;
  71. }
  72.  
  73. int paran(int x)
  74. {
  75. if (x % 2 == 0)
  76. return 1;
  77. else return 0;
  78. }
  79.  
  80. int pozitivan(int x)
  81. {
  82. if (x > 0)
  83. return 1;
  84. else return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement