/* Dla ciągu w postaci tablicy zawierajacego wartosci calkowite, Znajdz malejacy podciag o najwiekszej dlugosci Przyklad : a[]=[=10,5,8,1,-4,-4,10,3,-1,1] Wyjscie: najdluzsze malejace podciagi to 8,1,-4 oraz 10,3,-1 */ #include int main(){ int a[] = {10,5,8,1,-4,-4,10,3,-1,1}; // Deklaracja tablicy int maxLength = 1; // Deklaracja zmiennej MaxLength która przechowuje aktualnie najdluzszy podciag int i = 0, j=0, length = 0; // Deklaracja zmiennych typu int int arrSize = sizeof(a)/sizeof(a[0]); // Zmienna przechowujaca rozmiar tablicy printf("*** Rozmiar tablicy: %d ***\n",arrSize); // Wypisanie rozmiaru tablicy za pomoca funkcji printf printf("Najdluzsze malejace podciagi to: \n"); // Wypisanie tekstu for (i = 0; i < arrSize - 1; i++) {// Petla iterujaca po wszystkich liczbach w tablicy length = 1; // Tymczasowa najwieksza dlugosc while (a[i + 1] < a[i] && i < arrSize - 1) { // Petla iterujaca dopóki wyraz nastepny jest mniejszy od poprzedniego i nie przekroczono rozmiaru tablicy i++;//zwiekszanie wartosci zmiennej odpowiedzialnej za sprawdzanie kolenych elemetow ciagu length++;// zwiekszanie wartosci zmiennej przechowujacej tymczasowa dlugosc podciagu malejacego } if (length > maxLength) // Jesli znaleziono dluzszy podciag to staje sie on aktualnie najdluzszym podciagiem maxLength = length; // przypisanie wartosci } if (maxLength > 1) { //Sprawdzanie czy znaleziono wiekszy podciag o dlugosci wiekszej niz jeden for (i = 0; i < arrSize - 1; i++) { // Petla iterujaca po wszystkich liczbach w tablicy length = 1;//tymczasowa najwieksza wartosc dlugosci podciagu while (a[i + 1] < a[i] && i < arrSize - 1) { // Petla iterujaca dopóki wyraz nastepny jest mniejszy od poprzedniego i nie przekroczono rozmiaru tablicy i++;//zwiekszanie wartosci zmiennej odpowiedzialnej za sprawdzanie kolenych elemetow ciagu length++;// zwiekszanie wartosci zmiennej przechowujacej tymczasowa dlugosc podciagu malejacego } if (length == maxLength) { // Sprawdzanie czy sprawdzany ciag jest najdluzszym podciagiem for(j = i - length + 1; j <= i; j++) { // Iterowanie po elementach podciagu printf("%d, ", a[j]); //Wypisywanie elementu z tablicy } printf("\n"); //Rozdzielenie podciagow za pomoca nowej lini } } } return 0; }