Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /* Funkcje tablicowe */
  5. void wypelnijTablice(int n, int tab[])
  6. {
  7. int i = 0;
  8. for( i = 0; i < n; ++i){
  9. printf("Wprowadz wartosc: ");
  10. scanf("%d", &tab[i]);
  11. }
  12. }
  13.  
  14. void pokazTablice(int n, int tab[])
  15. {
  16. printf("Zawartosc tablicy: ");
  17. int i = 0;
  18. for(i ; i < n; ++i){
  19. printf("%d ", tab[i]);
  20. }
  21. printf("\n");
  22. }
  23.  
  24. /* Sortowanie */
  25. int sortFlaga(int n, int tab[])
  26. {
  27. int l =0;
  28. int p = n - 1;
  29. while(l < p)
  30. {
  31. if(tab[l] % 2 == 0){
  32. ++l;
  33.  
  34. } else {
  35. int al = tab[l];
  36. int ap = tab[p];
  37.  
  38. tab[l] = ap;
  39. tab[p] = al;
  40. --p;
  41. }
  42. }
  43.  
  44. int index = -1;
  45. int i = 0;
  46. for(i ; i < n; ++i){
  47. if(tab[i] % 2 == 0){
  48. ++index;
  49. } else {
  50. i = n + 1;
  51. }
  52. }
  53.  
  54. return index;
  55. }
  56.  
  57. void insertSort(int tab[], int lastIndex)
  58. {
  59. int i, j;
  60. for(i=0; i < lastIndex ; ++i)
  61. {
  62. int temp=tab[i];
  63.  
  64. for(j= i-1; j>=0 && tab[j] > temp; --j)
  65. {
  66. tab[j+1]=tab[j];
  67. }
  68. tab[j+1]=temp;
  69. }
  70. }
  71.  
  72. /* Wyszukiwanie */
  73. int wyszukiwanieLiniowe(int* tab, int n, int szukana)
  74. {
  75. int toReturn = -1;
  76.  
  77. int i;
  78. for(i = 0; i < n; ++i){
  79. if(tab[i] == szukana){
  80. toReturn = i;
  81. break;
  82. }
  83. }
  84. return toReturn;
  85. }
  86.  
  87.  
  88. int ileParzystychWPrzedziale(int min, int max, int tab[], int size)
  89. {
  90. int iterator = 0;
  91. int i = min;
  92. for(i; i < max; ++i){
  93. if(i % 2 == 0){
  94.  
  95. if(wyszukiwanieLiniowe(tab, size, i) != -1)
  96. ++iterator;
  97. }
  98. }
  99. return iterator;
  100. }
  101.  
  102. void znajdzPrzedzial(int tab[], int size)
  103. {
  104. int r = 0;
  105. printf("\nPodaj r: ");
  106. scanf("%d", &r);
  107.  
  108. int min = 0;
  109. int max = 0;
  110. int count = 0;
  111.  
  112. int i = 0;
  113. for(i ; i != size; ++i){
  114.  
  115. int ileParzystych = ileParzystychWPrzedziale(tab[i], tab[i]+r, tab, size);
  116. if(ileParzystych > count){
  117. count = ileParzystych;
  118. min = tab[i];
  119. max = tab[i] + r;
  120. }
  121. }
  122.  
  123. printf("Najwiecej liczb parzystych jest w przedziale od %d do %d, ich ilosc: %d \n", min, max, count);
  124. }
  125.  
  126. int main()
  127. {
  128. int n = 0;
  129. printf("Podaj n: ");
  130. scanf("%d", &n);
  131.  
  132. int tab[n];
  133. wypelnijTablice(n, tab);
  134. int index = sortFlaga(n, tab);
  135. pokazTablice(n, tab);
  136.  
  137. if(index != -1){
  138.  
  139. printf("\nLiczba parzysta znajduje sie na pozycji %d", index);
  140.  
  141. insertSort(tab, index);
  142. znajdzPrzedzial(tab, index+1);
  143.  
  144. } else {
  145. printf("Brak liczby parzystej w tablicy");
  146. }
  147.  
  148. return 0;
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement