You are on page 1of 4

#include <iostream>

#include <algorithm>

int SumRec(int n) //
algorytm sumy cyfr (najpierw modulo z 10, potem sumowanie przez 10)
{
if (n>0)
return (n%10 + SumRec(n/10));
else
return 0;
}

void dispCharTab(char tab[], const int size)


{
for (int i = 0; i < size; i++) {
std::cout << tab[i] << " ";
}
}

void dispDoubleTab(double tab[], const int size)


{
for (int i = 0; i < size; i++) {
std::cout << tab[i] << " ";
}
}

void dispIntTab(int tab2[], const int size)


{
for (int i = 0; i < size; i++)
{
std::cout << tab2[i] << " ";
}
}

void Task1(char tab[], const int size)


{
const int size2=10;
double tab3[size2];
int z;
for (z=0; z<size2; z++)
{
if ((tab[z]>='A') && (tab[z]<='Z'))
tab3[z]=static_cast<int>(tab[z])+32.25;
//static_cast powoduje przywracanie konwersji wartości z np. chara/stringa na Inta
else
tab3[z]=static_cast<int>(tab[z]);
}
//dispDoubleTab(tab3, size);

int i, j, i_min, j_min;


for (i=0; i<size; i++)
{
j_min=i;
for (j=i; j<size; j++)
{
if(tab3[j]<tab3[j_min])
{
j_min=j;
}

}
std::swap (tab3[j_min], tab3[i]);
std::swap (tab[j_min], tab[i]);
dispCharTab(tab, size);
std::cout << std::endl;
}
//dispDoubleTab(tab3, size);

void Task2 (int tab2[], const int size2)


{
const int sum_size=10;
int sum_tab[sum_size];
int value;
for (int s = 0; s < sum_size; s++)
{
value=tab2[s];
sum_tab[s]=SumRec(value);
}

int i,j, temp, temp2;


for (i=1; i<size2; i++)
{
j=i-1;
temp=tab2[i];
temp2=sum_tab[i];
while (j>=0 && temp2>sum_tab[j])
{
sum_tab[j+1]=sum_tab[j];
tab2[j+1]=tab2[j];
j--;
}
sum_tab[j+1]=temp2;
tab2[j+1]=temp;
dispIntTab(tab2, size2);
std::cout << std::endl;
}

int main()
{
int task;
std::cin >> task;

switch(task)
{
case 1:
{
const int size=10;
char tab[size];

for (int i=0; i<size; i++)


std::cin >> tab[i];

Task1 (tab, size);


}
break;
case 2:
{
const int size2=10;
int tab2[size2];

for (int i = 0; i < size2; i++) {


std::cin >> tab2[i];
}
Task2(tab2, size2);
}
break;
default:
std::cout << "Wrong exist number." <<std::endl;

return 0;

////////SPRAWDZENIE ////////// TASK2 ////////////////


/*

123 4 5 143 6 43 7 10 1 100


123 5 4 143 6 43 7 10 1 100
143 123 5 4 6 43 7 10 1 100
143 123 6 5 4 43 7 10 1 100
143 43 123 6 5 4 7 10 1 100
143 43 7 123 6 5 4 10 1 100
143 43 7 123 6 5 4 10 1 100
143 43 7 123 6 5 4 10 1 100
143 43 7 123 6 5 4 10 1 100

123 4 5 143 6 43 7 10 1 100


123 5 4 143 6 43 7 10 1 100
143 123 5 4 6 43 7 10 1 100
143 123 6 5 4 43 7 10 1 100
143 43 123 6 5 4 7 10 1 100
143 43 7 123 6 5 4 10 1 100
143 43 7 123 6 5 4 10 1 100
143 43 7 123 6 5 4 10 1 100
143 43 7 123 6 5 4 10 1 100

*/

You might also like