/* 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 <stdio.h>
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;
}
Replies to xxx 
Title |
Name |
Language |
UNIX |
When |
Re: xxx |
424 |
c |
1669241706 |
2 Years ago. |
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}