Facebook
From xxx, 2 Years ago, written in C.
Embed
Download Paste or View Raw
Hits: 147
  1. /*  Dla ciągu w postaci tablicy zawierajacego wartosci calkowite,
  2.   Znajdz malejacy podciag o najwiekszej dlugosci
  3.   Przyklad : a[]=[=10,5,8,1,-4,-4,10,3,-1,1]
  4.   Wyjscie: najdluzsze malejace podciagi to 8,1,-4 oraz 10,3,-1
  5.  */
  6. #include <stdio.h>
  7. int main(){
  8.     int a[] = {10,5,8,1,-4,-4,10,3,-1,1}; // Deklaracja tablicy
  9.     int maxLength = 1;  // Deklaracja zmiennej MaxLength która przechowuje aktualnie najdluzszy podciag
  10.     int i = 0, j=0, length = 0; // Deklaracja zmiennych typu int
  11.     int arrSize = sizeof(a)/sizeof(a[0]); // Zmienna przechowujaca rozmiar tablicy
  12.     printf("*** Rozmiar tablicy: %d ***\n",arrSize); // Wypisanie rozmiaru tablicy za pomoca funkcji printf
  13.     printf("Najdluzsze malejace podciagi to: \n"); // Wypisanie tekstu
  14.     for (i = 0; i < arrSize - 1; i++) {// Petla iterujaca po wszystkich liczbach w tablicy
  15.         length = 1; // Tymczasowa najwieksza dlugosc
  16.         while (a[i + 1] < a[i] && i < arrSize - 1) { // Petla iterujaca dopóki wyraz nastepny jest mniejszy od poprzedniego i nie przekroczono rozmiaru tablicy
  17.             i++;//zwiekszanie wartosci zmiennej odpowiedzialnej za sprawdzanie kolenych elemetow ciagu
  18.             length++;// zwiekszanie wartosci zmiennej przechowujacej tymczasowa dlugosc podciagu malejacego
  19.         }
  20.         if (length > maxLength) // Jesli znaleziono dluzszy podciag to staje sie on aktualnie najdluzszym podciagiem
  21.             maxLength = length; // przypisanie wartosci
  22.     }
  23.     if (maxLength > 1) { //Sprawdzanie czy znaleziono wiekszy podciag o dlugosci wiekszej niz jeden
  24.         for (i = 0; i < arrSize - 1; i++) { // Petla iterujaca po wszystkich liczbach w tablicy
  25.             length = 1;//tymczasowa najwieksza wartosc dlugosci podciagu
  26.             while (a[i + 1] < a[i] && i < arrSize - 1) { // Petla iterujaca dopóki wyraz nastepny jest mniejszy od poprzedniego i nie przekroczono rozmiaru tablicy
  27.                 i++;//zwiekszanie wartosci zmiennej odpowiedzialnej za sprawdzanie kolenych elemetow ciagu
  28.                 length++;// zwiekszanie wartosci zmiennej przechowujacej tymczasowa dlugosc podciagu malejacego
  29.             }
  30.             if (length == maxLength) { // Sprawdzanie czy sprawdzany ciag jest najdluzszym podciagiem
  31.                 for(j = i - length + 1; j <= i; j++) { // Iterowanie po elementach podciagu
  32.                     printf("%d, ", a[j]); //Wypisywanie elementu z tablicy
  33.                 }      
  34.                 printf("\n"); //Rozdzielenie podciagow za pomoca nowej lini
  35.             }
  36.         }
  37.     }
  38.     return 0;
  39. }

Replies to xxx rss

Title Name Language When
Re: xxx 424 c 2 Years ago.
captcha