- #include <iostream>
- using namespace std;
- void dispTabV3(char tab[], int size)
- {
- for(int i=0; i < size; i++)
- {
- cout << tab[i] << " ";
- }
- }
- void sortowanie_alfabetyczne(char tab[], int size)
- {
- for(int i = 0; i < size; i++)
- {
- int index_literaD = i;
- int index_literaM = i;
- int index_litera = i;
- char literaD = 123;
- char literaM = 123;
- char litera = 123;
- for(int j = i; j < size; j++)
- {
- if(literaD > tab[j] && tab[j] >= 65 && tab[j] <= 90)
- {
- literaD = tab[j];
- index_literaD = j;
- }
- }
- for(int k = i; k < size; k++)
- {
- if(literaM > tab[k] && tab[k] >= 97 && tab[k] <= 122)
- {
- literaM = tab[k];
- index_literaM = k;
- }
- }
- if(literaM <= literaD + 32)
- {
- litera = literaM;
- index_litera = index_literaM;
- }
- else
- {
- litera = literaD;
- index_litera = index_literaD;
- }
- int B;
- B = tab[i];
- tab[index_litera] = B;
- tab[i] = litera;
- //swap(tab[i], tab[index_litera]);
- //cout << endl << litera << endl;
- //cout << endl <<literaM << " " << literaD << endl;
- dispTabV3(tab ,size);
- }
- }
- void dispTabV2(int tab2D[4][5], const int x, const int y)
- {
- for(int i = 0; i < x; i++)
- {
- for(int j = 0; j < y; j++)
- {
- cout << tab2D[i][j] <<" ";
- }
- }
- cout << endl;
- }
- void dispTab(unsigned int tab[], int size)
- {
- for(int i=0; i < size; i++)
- {
- cout << tab[i] << " ";
- }
- }
- int suma_cyfr(int liczba)
- {
- int wynik = 0;
- do
- {
- wynik = wynik + liczba%10;
- liczba = liczba/10;
- }
- while(liczba!=0);
- return wynik;
- }
- void sort_wstawianie(unsigned int tab[], const int size)
- {
- int key, j;
- for(int i=1; i< size; i++)
- {
- key = tab[i];
- j = i-1;
- while( j>=0 && suma_cyfr(tab[j]) < suma_cyfr(key))
- {
- tab[j+1] = tab[j];
- j = j - 1;
- }
- tab[j + 1] = key;
- dispTab(tab, size);
- }
- }
- void sort_babelkowe(int tab2D[4][5],const int x,const int y)
- {
- for (int k = 0; k < 20 ; k++)
- {
- for(int i = 0; i < x; i++)
- {
- for( int j = 0; j < y; j++)
- {
- if( tab2D[i][j] > tab2D[i][j+1] && i != x && j != y)
- {
- int B;
- B = tab2D[i][j+1];
- tab2D[i][j+1] = tab2D[i][j];
- tab2D[i][j] = B;
- }
- else if(tab2D[i][j]> tab2D[i+1][0])
- {
- int B;
- B = tab2D[i+1][0];
- tab2D[i+1][0] = tab2D[i][j];
- tab2D[i][j] = B;
- }
- }
- }
- }
- dispTabV2(tab2D, x, y);
- /*
- for(int i = 0; i < x; i++)
- {
- for(int j = 0; j < y; j++)
- {
- int min = tab2D[i][j];
- int minX = i;
- int minY = j;
- for(int w = i; w < x; w++)
- {
- for(int k = j; k < y; k++)
- {
- if(tab2D[w][k] < tab2D[minX][minY])
- {
- minX = w;
- minY = k;
- }
- swap(tab2D[i][j], tab2D[minX][minY]);
- cout << tab2D[minX][minY] << endl;
- dispTabV2(tab2D, x, y);
- }
- }
- }
- }*/
- }
- int main() {
- int zad;
- cin >> zad;
- switch(zad)
- {
- case 1:
- {
- const int size = 10;
- char tab[size];
- string litera;
- int iteracja = 0;
- bool flag = true;
- while( flag )
- {
- char litera2;
- cin >> litera;
- litera2 = 0;
- if(litera.size() == 1)
- {
- litera2 = litera[0];
- }
- if((static_cast<int>(litera2) > 64 && static_cast<int>(litera2) <90) || (static_cast<int>(litera2)>96 && static_cast<int>(litera2) < 123))
- {
- tab[iteracja] = litera2;
- iteracja++;
- }
- if(iteracja == 11)
- {
- flag = false;
- }
- }
- sortowanie_alfabetyczne(tab, size);
- break;
- }
- case 2:
- {
- const int size = 10;
- unsigned int tab[size];
- string liczba;
- int iteracja = 0;
- bool flag = true;
- while( flag )
- {
- cin >> liczba;
- bool flaga_sens = true;
- for(int i = 0; i < liczba.size(); i++)
- {
- if(static_cast<int>(liczba[i]) < 48 || static_cast<int>(liczba[i]) > 57 )
- {
- flaga_sens = false;
- }
- }
- unsigned int string_na_liczbe = 0;
- unsigned int potenga = 1;
- if(flaga_sens)
- {
- for(int i = liczba.size()-1; i >= 0; i--)
- {
- // cout << static_cast<unsigned int>(liczba[i]) << endl;
- string_na_liczbe = string_na_liczbe + (static_cast<unsigned int>(liczba[i]-48))*potenga;
- potenga = potenga * 10;
- // cout << string_na_liczbe <<" ";
- }
- //cout << string_na_liczbe;
- tab[iteracja] = string_na_liczbe;
- //cout << tab[iteracja] << endl;
- iteracja++;
- }
- if(iteracja == 10)
- {
- flag = false;
- }
- }
- //dispTab(tab, size);
- sort_wstawianie(tab, size);
- break;
- }
- case 3:
- {
- const int x = 4;
- const int y = 5;
- int tab2D[x][y];
- for(int i=0; i<x; i++)
- {
- for(int j=0; j<y; j++)
- {
- string liczba;
- int iteracja = 0;
- bool flag = true;
- while( flag )
- {
- cin >> liczba;
- bool flaga_sens = true;
- for(int s = 0; s < liczba.size(); s++)
- {
- if(static_cast<int>(liczba[s]) < 48 || static_cast<int>(liczba[s]) > 57 )
- {
- flaga_sens = false;
- }
- }
- unsigned int string_na_liczbe = 0;
- unsigned int potenga = 1;
- if(flaga_sens)
- {
- for(int s = liczba.size()-1; s >= 0; s--)
- {
- // cout << static_cast<unsigned int>(liczba[i]) << endl;
- string_na_liczbe = string_na_liczbe + (static_cast<unsigned int>(liczba[s]-48))*potenga;
- potenga = potenga * 10;
- // cout << string_na_liczbe <<" ";
- }
- //cout << string_na_liczbe;
- tab2D[i][j] = string_na_liczbe;
- //cout << tab[iteracja] << endl;
- iteracja++;
- }
- if(iteracja == 1)
- {
- flag = false;
- }
- }
- }
- }
- sort_babelkowe(tab2D, x, y);
- break;
- }
- }
- return 0;
- }