Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- /* Funkcje tablicowe */
- void wypelnijTablice(int n, int tab[])
- {
- int i = 0;
- for( i = 0; i < n; ++i){
- printf("Wprowadz wartosc: ");
- scanf("%d", &tab[i]);
- }
- }
- void pokazTablice(int n, int tab[])
- {
- printf("Zawartosc tablicy: ");
- int i = 0;
- for(i ; i < n; ++i){
- printf("%d ", tab[i]);
- }
- printf("\n");
- }
- /* Sortowanie */
- int sortFlaga(int n, int tab[])
- {
- int l =0;
- int p = n - 1;
- while(l < p)
- {
- if(tab[l] % 2 == 0){
- ++l;
- } else {
- int al = tab[l];
- int ap = tab[p];
- tab[l] = ap;
- tab[p] = al;
- --p;
- }
- }
- int index = -1;
- int i = 0;
- for(i ; i < n; ++i){
- if(tab[i] % 2 == 0){
- ++index;
- } else {
- i = n + 1;
- }
- }
- return index;
- }
- void insertSort(int tab[], int lastIndex)
- {
- int i, j;
- for(i=0; i < lastIndex ; ++i)
- {
- int temp=tab[i];
- for(j= i-1; j>=0 && tab[j] > temp; --j)
- {
- tab[j+1]=tab[j];
- }
- tab[j+1]=temp;
- }
- }
- /* Wyszukiwanie */
- int wyszukiwanieLiniowe(int* tab, int n, int szukana)
- {
- int toReturn = -1;
- int i;
- for(i = 0; i < n; ++i){
- if(tab[i] == szukana){
- toReturn = i;
- break;
- }
- }
- return toReturn;
- }
- int ileParzystychWPrzedziale(int min, int max, int tab[], int size)
- {
- int iterator = 0;
- int i = min;
- for(i; i < max; ++i){
- if(i % 2 == 0){
- if(wyszukiwanieLiniowe(tab, size, i) != -1)
- ++iterator;
- }
- }
- return iterator;
- }
- void znajdzPrzedzial(int tab[], int size)
- {
- int r = 0;
- printf("\nPodaj r: ");
- scanf("%d", &r);
- int min = 0;
- int max = 0;
- int count = 0;
- int i = 0;
- for(i ; i != size; ++i){
- int ileParzystych = ileParzystychWPrzedziale(tab[i], tab[i]+r, tab, size);
- if(ileParzystych > count){
- count = ileParzystych;
- min = tab[i];
- max = tab[i] + r;
- }
- }
- printf("Najwiecej liczb parzystych jest w przedziale od %d do %d, ich ilosc: %d \n", min, max, count);
- }
- int main()
- {
- int n = 0;
- printf("Podaj n: ");
- scanf("%d", &n);
- int tab[n];
- wypelnijTablice(n, tab);
- int index = sortFlaga(n, tab);
- pokazTablice(n, tab);
- if(index != -1){
- printf("\nLiczba parzysta znajduje sie na pozycji %d", index);
- insertSort(tab, index);
- znajdzPrzedzial(tab, index+1);
- } else {
- printf("Brak liczby parzystej w tablicy");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement