Advertisement
Kocyk

dziala przedzoal

Mar 25th, 2019
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. void wprowadzanie(int tab[],int n)
  4. {
  5. for(int i=0;i<n;i++)
  6. {
  7. cout<<"Podaj liczbe nr "<<i+1<<endl;
  8. cin>>tab[i];
  9. cout<<endl;
  10. }
  11. }
  12. int flagapolska(int tab[],int n)
  13. {
  14. int p=0, k=n-1;
  15. while(p<k)
  16. {
  17. while(p<n-1 && tab[p]%2==0) p++;
  18. while(k>=0 && tab[k]%2==1) k--;
  19. if(p<k)
  20. {
  21. swap(tab[p],tab[k]);
  22. }
  23. }
  24. return k;
  25. }
  26. void qsort(int tab[], int l, int p) {
  27. int i=l-1;
  28. int j=p+1;
  29. int sr=tab[(l+p)/2];
  30. while(1) {
  31. while(sr>tab[++i]);
  32. while(sr<tab[--j]);
  33.  
  34. if (i<=j) swap(tab[i],tab[j]);
  35. else break;
  36. }
  37. if(j>l) qsort(tab,l,j);
  38. if(i<p) qsort(tab,i,p);
  39. }
  40. int przedzial(int tab[],int k,int r)
  41. {
  42. int maxp=0,akp=0;
  43. int imaxp=0,iakp=0;
  44. for(int i=0;i<k-1;i++)
  45. {
  46. for(int j=i;j<k-1;j++)
  47. {
  48. akp=0;
  49. if(tab[j]<=tab[i]+r)
  50. {
  51. akp++;
  52. iakp=j;
  53. }
  54. }
  55. if(akp>maxp)
  56. {
  57. maxp=akp;
  58. imaxp=iakp;
  59. }
  60.  
  61. }
  62. return imaxp;
  63. }
  64. void wyswietlanie(int tab[],int n)
  65. {
  66. for(int i=0;i<n;i++)
  67. {
  68. cout<<tab[i]<<endl;
  69. }
  70. }
  71.  
  72. int main()
  73. {
  74. int n;
  75. cout<<"Podaj ile liczb"<<endl;
  76. cin>>n;
  77. int tab[n];
  78.  
  79. wprowadzanie(tab,n);
  80. int pom=flagapolska(tab,n);
  81. qsort(tab,0,pom);
  82. //wyswietlanie(tab,n);
  83. int r;
  84. cout<<"Podaj R"<<endl;
  85. cin>>r;
  86. int wynik=przedzial(tab,pom,r);
  87. cout<<"Przedzial:"<<tab[wynik]<<"-"<<tab[wynik]+r<<endl;
  88. return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement