Advertisement
thebys

bubble sort radi matici

Nov 23rd, 2014
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.49 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. //Koktejlove razeni matice matice
  4. int main()
  5. {
  6.     //deklarace promennych
  7.     int pocetRadku = 11;
  8.     int pocetSloupcu = 23;
  9.     int matice[pocetRadku][pocetSloupcu];
  10.     srand(time(NULL));
  11.  
  12.     int serazeno = 0;
  13.     int zpatky = 0;
  14.  
  15.     //naplnění matice a jeji vypis
  16.     for(int i = 0; i < pocetRadku; ++i)
  17.     {
  18.         for(int j = 0; j < pocetSloupcu; ++j)
  19.         {
  20.             matice[i][j] = rand() % 100;
  21.             printf("%02i ", matice[i][j]);
  22.         }
  23.         printf("\n");
  24.     }
  25.     //serazeni matice
  26.  
  27.     while(serazeno == 0)
  28.     {
  29.         int nastaloPrehozeni = 0;
  30.         for(int k = 0; k < pocetRadku; ++k)
  31.         {
  32.             for(int l = 0; l < pocetSloupcu; ++l)
  33.             {
  34.                 //  printf("presort P:%02i:%02i - V: %02i\n", k, l, matice[k][l]);
  35.  
  36.                 if(l < pocetSloupcu-1) //stejny radek
  37.                 {
  38.                     if((matice[k][l]) < matice[k][l+1])
  39.                     {
  40.                         int temp = matice[k][l];
  41.                         matice[k][l] = matice[k][l+1];
  42.                         matice[k][l+1] = temp;
  43.                         nastaloPrehozeni = 1;
  44.                     }
  45.                 }
  46.                 if(k < pocetRadku-1 && l == pocetSloupcu -1) //posledni polozka neposledniho radku
  47.                 {
  48.                     if((matice[k][l]) < matice[k+1][0]) //posledni polozka aktualniho radku s prvni polozkou nasledujiciho
  49.                     {
  50.                         int temp = matice[k][l];
  51.                         matice[k][l] = matice[k+1][0];
  52.                         matice[k+1][0] = temp;
  53.                         nastaloPrehozeni = 1;
  54.                     }
  55.                 }
  56.                 if(k == pocetRadku-1 && l == pocetSloupcu-1)
  57.                 {
  58.                     //posledni polozka iterace
  59.                     break;
  60.                 }
  61.  
  62.                 if( matice[k][l] > 100)
  63.                 {
  64.                     printf("valerr P:%02i:%02i - V: %02i\n", k, l, matice[k][l]);
  65.                 }
  66.             }
  67.  
  68.         }
  69.         if(nastaloPrehozeni == 1)
  70.         {
  71.             continue;
  72.  
  73.         }
  74.         else
  75.         {
  76.             serazeno = 1;
  77.         }
  78.     }
  79.  
  80.     //vypis matice
  81.     printf("\n\nserazeno:\n");
  82.     for(int i = 0; i < pocetRadku; ++i)
  83.     {
  84.         for(int j = 0; j < pocetSloupcu; ++j)
  85.         {
  86.             printf("%02i ", matice[i][j]);
  87.         }
  88.         printf("\n");
  89.     }
  90.  
  91.  
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement