#include <cstdio>
#include <cstdlib>
#include <ctime>
void choicesSort(int*, const int);
void Init_Array(const int, int*, const int, const int);
void Print_Array(const int, const int*);
void Work(int*, int);
int main()
{
const int max_size = 30, left = -15, right = 20;
int my_array[max_size];
Init_Array(max_size, my_array, left, right);
printf("Вхідний масив:\n");
Print_Array(max_size, my_array);
printf("\n");
choicesSort(my_array, max_size);
printf("Вихідний масив:\n");
Print_Array(max_size, my_array);
printf("\n");
Work(my_array, max_size);
}
void Init_Array(const int n, int *mas, const int a, const int b)
{
srand(time(0));
for (int i = 0;i<n; i++)
mas[i] = a + rand() % (b - a+1 );
}
void Print_Array(const int n, const int *mas)
{
for (int i = 0; i < n; i++)
printf("%3d", mas[i]);
}
void choicesSort(int *mas, const int n)
{
int min = 0;
int buf = 0;
for (int i = 0; i < n; i++)
{
min = i;
for (int j = i + 1; j < n; j++)
min = (mas[j] < mas[min]) ? j : min;
if (i != min)
{
buf = mas[i];
mas[i] = mas[min];
mas[min] = buf;
}
}
}
void Work(int *mas, int n)
{
int i;
int alph = 0;
float persent;
for (int i = 0; i < n; i++)
{
if (mas[i] > 0)
alph++;
}
persent = (alph / 30.) * 100.;
printf("Відсоток чисел які мають додатнє значення: %5.2f %%\n", persent);
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxjdGltZT4KCnZvaWQgY2hvaWNlc1NvcnQoaW50KiwgY29uc3QgaW50KTsKdm9pZCBJbml0X0FycmF5KGNvbnN0IGludCwgaW50KiwgY29uc3QgaW50LCBjb25zdCBpbnQpOwp2b2lkIFByaW50X0FycmF5KGNvbnN0IGludCwgY29uc3QgaW50Kik7CnZvaWQgV29yayhpbnQqLCBpbnQpOwoKaW50IG1haW4oKQp7CiAgICBjb25zdCBpbnQgbWF4X3NpemUgPSAzMCwgbGVmdCA9IC0xNSwgcmlnaHQgPSAyMDsKICAgIGludCBteV9hcnJheVttYXhfc2l6ZV07CiAgICBJbml0X0FycmF5KG1heF9zaXplLCBteV9hcnJheSwgbGVmdCwgcmlnaHQpOwogICAgcHJpbnRmKCLQktGF0ZbQtNC90LjQuSDQvNCw0YHQuNCyOlxuIik7CiAgICBQcmludF9BcnJheShtYXhfc2l6ZSwgbXlfYXJyYXkpOwogICAgcHJpbnRmKCJcbiIpOwogICAgY2hvaWNlc1NvcnQobXlfYXJyYXksIG1heF9zaXplKTsKICAgIHByaW50Zigi0JLQuNGF0ZbQtNC90LjQuSDQvNCw0YHQuNCyOlxuIik7CiAgICBQcmludF9BcnJheShtYXhfc2l6ZSwgbXlfYXJyYXkpOwogICAgcHJpbnRmKCJcbiIpOwogICAgV29yayhteV9hcnJheSwgbWF4X3NpemUpOwp9Cgp2b2lkIEluaXRfQXJyYXkoY29uc3QgaW50IG4sIGludCAqbWFzLCBjb25zdCBpbnQgYSwgY29uc3QgaW50IGIpCnsKICAgIHNyYW5kKHRpbWUoMCkpOwogICAgZm9yIChpbnQgaSA9IDA7aTxuOyBpKyspCgogICAgICAgIG1hc1tpXSA9IGEgKyByYW5kKCkgJSAoYiAtIGErMSApOwp9CnZvaWQgUHJpbnRfQXJyYXkoY29uc3QgaW50IG4sIGNvbnN0IGludCAqbWFzKQp7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCiAgICAgICAgcHJpbnRmKCIlM2QiLCBtYXNbaV0pOwp9CnZvaWQgY2hvaWNlc1NvcnQoaW50ICptYXMsIGNvbnN0IGludCBuKQp7CiAgICBpbnQgbWluID0gMDsKICAgIGludCBidWYgPSAwOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CgogICAgICAgIG1pbiA9IGk7CiAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgbjsgaisrKQogICAgICAgICAgICBtaW4gPSAobWFzW2pdIDwgbWFzW21pbl0pID8gaiA6IG1pbjsKICAgICAgICBpZiAoaSAhPSBtaW4pCiAgICAgICAgewogICAgICAgICAgICBidWYgPSBtYXNbaV07CiAgICAgICAgICAgIG1hc1tpXSA9IG1hc1ttaW5dOwogICAgICAgICAgICBtYXNbbWluXSA9IGJ1ZjsKICAgICAgICB9CiAgICB9Cn0Kdm9pZCBXb3JrKGludCAqbWFzLCBpbnQgbikKewogICAgaW50IGk7CiAgICBpbnQgYWxwaCA9IDA7CiAgICBmbG9hdCBwZXJzZW50OwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgaWYgKG1hc1tpXSA+IDApCiAgICAgICAgICAgIGFscGgrKzsKICAgIH0KICAgIHBlcnNlbnQgPSAoYWxwaCAvIDMwLikgKiAxMDAuOwogICAgcHJpbnRmKCLQktGW0LTRgdC+0YLQvtC6INGH0LjRgdC10Lsg0Y/QutGWINC80LDRjtGC0Ywg0LTQvtC00LDRgtC90ZQg0LfQvdCw0YfQtdC90L3RjzogJTUuMmYgJSVcbiIsIHBlcnNlbnQpOwp9