24 апреля 2016 г.

Вывести одномерный массив по диагонали на экран буквой X

const int size=11;
int A[size]{};
for (size_t i = 0; i < size; i++) {
A[i] = i + 1;
}
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
if (i == j) {
cout << A[i];
}
else if (j == size - i-1) {
cout << A[size - i - 1];
}
else
cout << " ";
}
cout << endl;
}
system("pause");

Вывести на экран одномерный массив в виде полого квадрата.

const int size=16;

int A[size]{};




for (size_t i = 0; i < size; i++) {

A[i] = i + 1;

}

int index = 0;

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

for (int j = 0; j < 5; j++) {
if (i == 0||j==0||i==4||j==4) {
cout << A[index] << "\t";
index++;
}
else
cout << "\t";
}
cout << endl;

}

system("pause");

Создать одномерный массив из 50 элементов и заполнить его случайными значениями. Реализовать алгоритм линейного поиска элемента в заданном диапазоне. Искомое значение и диапазон значений указывает пользователь.

srand(time(0));

const int size = 50;

int A[size]{};

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

{

A[i] = rand() % 200 - 99;
cout << A[i] << "\t";
if ((i + 1) % 10 == 0)
cout << endl;

}

int begin;

int end;

int digit;

cout << "Enter begin range:";

cin >> begin;

cout << "Enter end range:";

cin >> end;

cout << "Enter digit:";

cin >> digit;

int i = begin;

for (; i < end; i++) {

if (A[i] == digit) {
cout << "Digit is found! " << i << " element in range" << endl;
break;
}

}

if (i == end)

cout << "Digit not found in range" << endl;

system("pause");

Есть два одномерных массива типа int, в третий (дробный) поместить результат нахождения процента br[n] от числа A[n].

srand(time(0));

const int size = 10;

int A[size]{};

int B[size]{};

int C[size]{};

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

A[i] = rand() % 100-50;
B[i] = rand() % 101;

}

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

A[i] = rand() % 100 - 50;
B[i] = rand() % 101;
cout << A[i] << "\t";

}

cout << endl;

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

{

cout << B[i] << "\t";

}

cout << endl;




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

{

C[i] = (A[i] * B[i]) / 100;

}




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

cout << C[i]<<"\t";

}

system("pause");

Написать программу, копирующую один массив в другой следующим образом: сначала копируются последовательно все элементы, большие 0, затем последовательно все элементы, равные 0, а затем последовательно все элементы, меньшие 0.

srand(time(0));

const int size = 10;

int A[size]{};

int B[size]{};

int index = 0;

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

A[i] = rand() % 200 - 99;
cout << A[i] << "\t";

}

cout << endl;

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

if (A[i] < 0) {
B[index] = A[i];
index++;
}

}

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

if (A[i] == 0) {
B[index] = A[i];
index++;
}

}

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

if (A[i] > 0) {
B[index] = A[i];
index++;
}

}

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

cout << B[i] << "\t";



system("pause");

Написать программу, копирующую последовательно элементы одного массива размером 10 элементов в 2 массива размером 5 элементов каждый.

srand(time(0));

const int size = 10;

const int s_size = size / 2;

int A[size]{};

int B[s_size]{};

int C[s_size]{};

int index_b = 0;

int index_c = 0;

cout << "Massive A:" << endl;

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

A[i] = rand() % 200 - 99;
cout << A[i] << "\t";

}

cout << endl;

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

if (i < s_size) {
B[index_b] = A[i];
index_b++;
continue;
}
C[index_c] = A[i];
index_c++;

}

cout << "Massive B:" << endl;

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

cout << B[i] << "\t";

}

cout << endl;

cout << "Massive C:" << endl;

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

cout << C[i] << "\t";

}

cout << endl;

system("pause");

Написать программу, копирующую последовательно элементы 2-х массивов размером 5 элементов каждый в один массив размером 10 элементов.

srand(time(0));

const int size = 5;

const int b_size = size * 2;

int A[size]{};

int B[size]{};

int C[b_size]{};

int index = 0;




cout << "Massive A:" << endl;

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

A[i] = rand() % 200 - 99;
cout << A[i] << "\t";

}

cout << endl;




cout << "Massive B:" << endl;

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

B[i] = rand() % 200 - 99;
cout << B[i] << "\t";

}

cout << endl;



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

C[index] = A[i];
index++;

}

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

C[index] = B[i];
index++;

}




cout << "Massive C:" << endl;

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

cout << C[i] << "\t";

}

cout << endl;

system("pause");

Сделать зеркальное отображение массива.

srand(time(0));

const int size = 5;

const int b_size = size * 2;

int A[size]{};

int B[b_size]{};

int index = 0;




cout << "Massive A:" << endl;

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

A[i] = rand() % 200 - 99;
cout << A[i] << "\t";

}

cout << endl;



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

if (i < size) {
B[index] = A[i];
index++;
continue;
}
B[index] = A[b_size-i-1];
index++;

}




cout << "Massive B:" << endl;

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

cout << B[i] << "\t";

}

cout << endl;

system("pause");

Осуществить циклический сдвиг массива на один элемент вправо, т.е. 0 становится 1, 1 – 2 и т.д. Последний становится нулевым. Например: 12345 = > 51234

srand(time(0));

const int size = 5;

int A[size]{};




cout << "Massive A:" << endl;

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

A[i] = rand() % 200 - 99;
cout << A[i] << "\t";

}

cout << endl;



int tmp = A[size - 1];

for (int i = size-1; i >0; i--) {

A[i] = A[i - 1];

}

A[0] = tmp;




cout << "Massive A:" << endl;

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

cout << A[i] << "\t";

}

cout << endl;

system("pause");

Массив размером 2m + 1, где m – натуральное число, заполнен случайным образом. Найдите в массиве медиану. Медианой называется элемент ряда, делящий его на две равные части: в одной находятся элементы, которые не меньше медианы, в другой – не больше медианы.

srand(time(0));

const int size = 9;

int A[size]{};




cout << "Massive A:" << endl;

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

A[i] = rand() % 51;
cout << A[i] << "\t";

}

cout << endl;

int tmp;

for (int i = 0, j = 0; i < size; i++) {

tmp = A[i];
for (j = i - 1; j >= 0 && A[j] > tmp; j--) {
A[j + 1] = A[j];
}
A[j + 1] = tmp;

}




cout << endl << "Sort massive:" << endl;

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

cout << A[i] << "\t";

cout << endl << endl;

cout << "Mediana: " << A[size / 2 + 1] << endl;

system("pause");

Массив размером m, где m – натуральное число, заполнен случайным образом. Найдите в массиве моду. Модой называется элемент ряда, который встречается наиболее часто.

srand(time(0));

const int size=10;

int A[size]{};




cout << "Massive A:" << endl;

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

A[i] = rand() % 51;
cout << A[i] << "\t";

}

cout << endl;




int tmp;

for (int i = 0, j = 0; i < size; i++) {

tmp = A[i];
for (j = i - 1; j >= 0 && A[j] > tmp; j--) {
A[j + 1] = A[j];
}
A[j + 1] = tmp;

}




int res = 0;

int max_index = 0;

int max_value = 0;

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

if (A[i] == A[i + 1]) {
res++;
max_value = A[i];
}
if (res > max_index) {
max_index = res;

}

}

cout << "Moda:" << max_value << endl;



system("pause");

Реализовать программу, которая позволит пользователю самому переставлять элементы массива. Изначально массив заполняется случайными значениями(диапазон этих значений задает пользователь). Затем пользователь указывает индекс того элемента, который он хочет переместить, на экран выводиться массив без этого элемента. Затем пользователь указывает индекс, того места куда необходимо вставить элемент, который достали. Если пользователь хочет завершить сортировку, достаточно ввести индекс несуществующего элемента.

setlocale(LC_ALL,"rus");

const int size = 10;

int A[size]{};

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

A[i] = rand() % 51;

int digit;

do

{

cout << "Massive A:" << endl;
for (int i = 0; i < size; i++) {
A[i] = rand() % 51;
cout.width(3);
cout << A[i];
}
cout << endl;
cout << "Выберите элемент, который хотите переставить:";
cin >> digit;
int tmp_value = A[digit - 1];
int tmp_index = digit - 1;
for (int i = 0; i < size; i++) {
if (i == digit-1)
continue;
cout.width(3);
cout << A[i];
}
cout << endl;
cout << "Выберите место, куда вы хотите его вставить:";
cin >> digit;



A[tmp_index] = A[digit - 1];
A[digit - 1] = tmp_value;
for (int i = 0; i < size; i++) {
cout.width(3);
cout << A[i];
}
cout << endl;
cout << "Если хотите продолжить, нажмите 1:";
cin >> digit;

} while (digit == 1);




system("pause");

Дан двумерный массив размерностью 5х5, заполненный случайными числами из диапазона от 0 до 20. Определить сумму элементов массива.

srand(time(0));

const int columns = 5;

const int lines = 5;

int res = 0;



int A[lines][columns]{};

cout << "Massive A:" << endl;

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

for (int j = 0; j < columns; j++) {
A[i][j] = rand() % 100;
cout.width(3);
cout << A[i][j];
res += A[i][j];
}
cout << endl;

}

cout << endl << "Summ: " << res << endl;

system("pause");

Дан двумерный массив размерностью 5х5, заполненный случайными числами из диапазона от 0 до 20. Определить сумму элементов, расположенных на главной диагонали, а также сумму элементов, расположенных на побочной диагонали.

srand(time(0));

const int columns = 5;

const int lines = 5;

int glav_diag = 0;

int poboch_diag = 0;




int A[lines][columns]{};

cout << "Massive A:" << endl;

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

for (int j = 0; j < columns; j++) {
A[i][j] = rand() % 100;
cout.width(3);
cout << A[i][j];
if (i == j)
glav_diag += A[i][j];
if (j == columns - i - 1)
poboch_diag += A[i][j];
}
cout << endl;

}

cout << endl << "Summ glav_diag: " << glav_diag << endl

<< "Summ poboch_diag: " << poboch_diag << endl;

system("pause");

Дан двумерный массив размерностью 5х5, заполненный случайными числами из диапазона от -100 до 100. Определить минимальный и максимальный элемент.

srand(time(0));

const int columns = 5;

const int lines = 5;




int A[lines][columns]{};

cout << "Massive A:" << endl;

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

for (int j = 0; j < columns; j++) {
A[i][j] = rand() % 201-100;
cout.width(4);
cout << A[i][j];
}
cout << endl;

}




int max = A[0][0];

int min = A[0][0];

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

for (int j = 0; j < columns; j++) {
if (max < A[i][j])
max = A[i][j];
if (min > A[i][j])
min = A[i][j];
}
cout << endl;

}




cout << endl << "MAX: " << max << endl

<< "MIN: " << min << endl;

system("pause");

Дан двумерный массив размерностью 5х5, заполненный случайными числами из диапазона от - 5 до 5. Определить количество положительных, отрицательных и нулевых элементов.

srand(time(0));

const int columns = 5;

const int lines = 5;

int polozh = 0;

int otric = 0;




int A[lines][columns]{};

cout << "Massive A:" << endl;

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

for (int j = 0; j < columns; j++) {
A[i][j] = rand() % 11 - 5;
cout.width(4);
cout << A[i][j];
if (A[i][j]>0)
polozh++;
if (A[i][j] < 0)
otric++;

}
cout << endl;

}




cout << endl << "+: " << polozh << endl

<< "-: " << otric << endl;

system("pause");

Дан двумерный массив размерностью 5х5, заполненный случайными числами из диапазона от 0 до 20. Определить сумму по каждой строке массива.

srand(time(0));

const int columns = 5;

const int lines = 5;

int res = 0;




int A[lines][columns]{};

cout << "Massive A:" << endl;

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

for (int j = 0; j < columns; j++) {
A[i][j] = rand() % 21;
cout.width(4);
cout << A[i][j];
res += A[i][j];
}
cout << "\t SUMM=" << res << endl;
res = 0;

}




system("pause");

Дан двумерный массив размерностью 5х5, заполненный случайными числами из диапазона от 0 до 100. Обменять местами элементы массива, расположенные симметрично относительно главной диагонали.

srand(time(0));

const int size = 5;

int A[size][size]{};

for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
A[i][j] = rand() % 100;
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

cout << endl << endl;




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

{

for (size_t j = 0; j < size; j++)
{
if (j > i) {
int tmp = A[i][j];
A[i][j] = A[j][i];
A[j][i] = tmp;
}
}

}




cout << "Result:" << endl;

for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

system("pause");

Дан двумерный массив размерностью 5х5, заполненный случайными числами из диапазона от -100 до 100. Определить сумму элементов массива, расположенных между минимальным и максимальным элементами.

srand(time(0));

const int size = 5;

int A[size][size]{};

for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
A[i][j] = rand() % 100;
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

cout << endl << endl;

int summ = 0;

int min = A[0][0];

int max = A[0][0];

int index_min_x, index_min_y;

int index_max_x, index_max_y;




Находим минимальное и максимальное значение и запоминаем координаты

for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
if (min > A[i][j]) {
min = A[i][j];
index_min_x = j;
index_min_y = i;
}
if (max < A[i][j]) {
max = A[i][j];
index_max_x = j;
index_max_y = i;
}
}

}




считаем количество элементов





for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

cout << endl << endl;

cout << "Result:" << endl

<< "index_min_x = " << index_min_x << endl
<< "index_min_y = " << index_min_y << endl
<< "index_max_x = " << index_max_x << endl
<< "index_max_y = " << index_max_y << endl;

system("pause");

Дан двумерный массив размерностью 5х5, заполненный случайными числами из диапазона от 0 до 100. Поменять местами последний столбец массива со столбцом, в котором находится максимальный элемент.

srand(time(0));

const int size = 5;

int A[size][size]{};

for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
A[i][j] = rand() % 100;
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

cout << endl << endl;

int max = A[0][0];

int index_max_y;




for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
if (max < A[i][j]) {
max = A[i][j];
index_max_y = j;
}
}

}




for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
if (j == index_max_y) {
int tmp = A[i][j];
A[i][j] = A[i][size - 1];
A[i][size - 1] = tmp;
}
}

}




cout << "Result:" << endl;

for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

system("pause");

Дан двумерный массив размерностью 5х5, заполненный случайными числами из диапазона от 0 до 100. Поменять местами последнюю строку массива со строкой, в которой находится минимальный элемент.

srand(time(0));

const int size = 5;

int A[size][size]{};

for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
A[i][j] = rand() % 100;
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

cout << endl << endl;

int min = A[0][0];

int index_min_x;




for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
if (min > A[i][j]) {
min = A[i][j];
index_min_x = i;
}
}

}




for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
if (i == index_min_x) {
int tmp = A[i][j];
A[i][j] = A[size-1][j];
A[size - 1][j] = tmp;
}
}

}




cout << "Result:" << endl;

for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

system("pause");

Дан двумерный массив размерностью N x M, заполненный случайными числами из диапазона от 0 до 100. Выполнить циклический сдвиг массива на заданное количество столбцов. Направление сдвига задаёт пользователь.

srand(time(0));

int choice;

int count;

const int length = 8;

const int width = 5;

int A[width][length]{};

for (size_t i = 0; i < width; i++) {

for (size_t j = 0; j < length; j++) {
A[i][j] = rand() % 100;
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

cout << endl << endl;

do {

cout << "Enter a shift direction of the array:" << endl
<< "1 - Left" << endl << "2 - Right" << endl;
cin >> choice;

} while (choice != 1 && choice != 2);

cout << "Enter count:" << endl;

cin >> count;



switch (choice) {

case 1:

for (int k = 0; k < count; k++) {
for (size_t i = 0; i < width; i++) {
int tmp = A[i][0];
for (size_t j = 0; j < length-1; j++)
A[i][j] = A[i][j + 1];
A[i][length-1] = tmp;
}
}
break;

case 2:

for (int k = 0; k < count; k++) {
for (size_t i = 0; i < width; i++) {
int tmp = A[i][length - 1];
for (size_t j = length - 1; j > 0; j--)
A[i][j] = A[i][j - 1];
A[i][0] = tmp;
}
}
break;

}

cout << endl << endl;

cout << "Result:" << endl;

for (size_t i = 0; i < width; i++) {

for (size_t j = 0; j < length; j++) {
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

system("pause");

Дан двумерный массив размерностью N x M, заполненный случайными числами из диапазона от 0 до 100. Выполнить циклический сдвиг массива на заданное количество строк. Направление сдвига задаёт пользователь.

srand(time(0));

int choice;

int count;

const int length = 8;

const int width = 5;

int A[width][length]{};

for (size_t i = 0; i < width; i++) {

for (size_t j = 0; j < length; j++) {
A[i][j] = rand() % 100;
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

cout << endl << endl;

do {

cout << "Enter a shift direction of the array:" << endl
<< "1 - Up" << endl << "2 - Down" << endl;
cin >> choice;

} while (choice != 1 && choice != 2);

cout << "Enter count:" << endl;

cin >> count;



switch (choice) {

case 1:

for (int k = 0; k < count; k++) {
for (size_t j = 0; j < length; j++) {
int tmp = A[0][j];
for (size_t i = 0; i < width-1; i++)
A[i][j] = A[i+1][j];
A[width-1][j] = tmp;
}
}
break;

case 2:

for (int k = 0; k < count; k++) {
for (size_t j = 0; j < length; j++) {
int tmp = A[width-1][j];
for (size_t i = width - 1; i > 0; i--)
A[i][j] = A[i-1][j];
A[0][j] = tmp;
}
}
break;

}

cout << endl << endl;

cout << "Result:" << endl;

for (size_t i = 0; i < width; i++) {

for (size_t j = 0; j < length; j++) {
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

system("pause")

Дан двумерный массив размерностью 5х5, заполненный случайными числами из диапазона от 0 до 100. Переформировать массив таким образом, чтобы её столбцы располагались по убыванию их поэлементных сумм.

void InitAr(int A[][5],int size) {

for (size_t i = 0; i < size; i++) {
for (size_t j = 0; j < size; j++) {
A[i][j] = rand() % 100;
}
}

}




void ShowAr(int A[][5], int size) {

for (size_t i = 0; i < size; i++) {
for (size_t j = 0; j < size; j++) {
cout.width(3);
cout << A[i][j];
}
cout << endl;
}

}




void SummElem(int A[][5], int size, int S[]) {

for (size_t i = 0; i < size; i++)
for (size_t j = 0; j < size; j++)
S[j] += A[i][j];

}




void ShowSummElem(int S[], int size) {

for (size_t i = 0; i < size; i++) {
cout.width(4);
cout << S[i];
}
cout << endl << endl;

}




void ChangeColumns(int A[][5], int size, int x1,int x2) {

for (size_t i = 0; i < size; i++) {
for (size_t j = 0; j < size; j++) {
int tmp = A[i][x1];
A[i][x1] = A[i][x2];
A[i][x2] = tmp;
}
}

}




void SortArray(int A[][5], int size,int S[]) {

int tmp;
for (int i = 0; i < size; i++) {
for (int j = 1; j < size - i; j++) {
if (S[j - 1] > S[j]) {
tmp = S[j];
S[j] = S[j - 1];
S[j - 1] = tmp;
ChangeColumns(A, size, j, j-1);
}
}
}

}




void main() {

srand(time(0));
const int size = 5;
int A[size][size]{};
InitAr(A, size);
ShowAr(A, size);
int SUMM[size]{};
SummElem(A, size, SUMM);
ShowSummElem(SUMM,size);
SortArray(A, size, SUMM);
ShowAr(A, size);
system("pause");

}

Поместить в одномерный массив числа от 1 до 30 (31). И показать календарь на текущий месяц.


int month;

do {

cout << "Enter number of month(1-12):";
cin >> month;

} while (month < 1 || month > 12);

cout << "Mo\tTu\tWe\tTh\tFr\tSa\tSu" << endl;

switch (month) {

case 1:{

int A[31]{};
for (int i = 1; i <= 31; i++)
A[i - 1] = i;
for (int i = 0; i < 35; i++) {
if (i < 4) {
cout << "\t";
continue;
}
cout << A[i - 4] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}

break;

case 2:{

int A[29]{};
for (int i = 1; i <= 29; i++)
A[i - 1] = i;
for (int i = 0; i <29; i++) {
cout << A[i] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}

break;

case 3: {

int A[31]{};
for (int i = 1; i <= 31; i++)
A[i - 1] = i;
for (int i = 0; i < 32; i++) {
if (i == 0) {
cout << "\t";
continue;
}
cout << A[i - 1] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;

case 4: {

int A[30]{};
for (int i = 1; i <= 30; i++)
A[i - 1] = i;
for (int i = 0; i < 34; i++) {
if (i < 4) {
cout << "\t";
continue;
}
cout << A[i - 4] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;

case 5: {

int A[31]{};
for (int i = 1; i <= 31; i++)
A[i - 1] = i;
for (int i = 0; i < 37; i++) {
if (i < 6) {
cout << "\t";
continue;
}
cout << A[i - 6] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;

case 6: {

int A[30]{};
for (int i = 1; i <= 30; i++)
A[i - 1] = i;
for (int i = 0; i < 32; i++) {
if (i < 2) {
cout << "\t";
continue;
}
cout << A[i - 2] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;

case 7: {

int A[31]{};
for (int i = 1; i <= 31; i++)
A[i - 1] = i;
for (int i = 0; i < 35; i++) {
if (i < 4) {
cout << "\t";
continue;
}
cout << A[i - 4] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;

case 8: {

int A[31]{};
for (int i = 0; i < 31; i++) {
A[i - 1] = i+1;
cout << A[i-1] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;

case 9: {

int A[30]{};
for (int i = 1; i <= 30; i++)
A[i - 1] = i;
for (int i = 0; i < 33; i++) {
if (i < 3) {
cout << "\t";
continue;
}
cout << A[i - 3] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;

case 10: {

int A[31]{};
for (int i = 1; i <= 31; i++)
A[i - 1] = i;
for (int i = 0; i < 36; i++) {
if (i < 5) {
cout << "\t";
continue;
}
cout << A[i - 5] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;

case 11: {

int A[30]{};
for (int i = 1; i <= 30; i++)
A[i - 1] = i;
for (int i = 0; i < 31; i++) {
if (i==0) {
cout << "\t";
continue;
}
cout << A[i - 1] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;

case 12: {

int A[31]{};
for (int i = 1; i <= 31; i++)
A[i - 1] = i;
for (int i = 0; i < 34; i++) {
if (i < 3) {
cout << "\t";
continue;
}
cout << A[i - 3] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;

}

system("pause");

Отсортируйте по возрастанию методом "вставками" одномерный целочисленный массив, заданный с клавиатуры различными числами. Выведите на экран исходный и отсортированный массивы.

const int size = 10;

int A[size]{};

int tmp;



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

cout << "Enter A[" << i << "]:";
cin >> A[i];

}




cout << "Massive A:" << endl;

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

cout << A[i] << "\t";

}

cout << endl;




for (int i = 0, j = 0; i < size; i++) {

tmp = A[i];
for (j = i - 1; j >= 0 && A[j] > tmp;j--) {
A[j + 1] = A[j];
}
A[j + 1] = tmp;

}

cout << endl << "Sort massive:" << endl;

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

cout << A[i] << "\t";

cout << endl;

system("pause");

Отсортируйте по невозрастанию методом "вставками" одномерный вещественный массив, заданный случайными числами на промежутке [0; 50). Выведите на экран исходный и отсортированный массивы.

srand (time (0));

const int size = 10;

double A[size]{};

double tmp;




cout << "Massive A:" << endl;

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

A[i] = rand() % 5000*0.01;
cout << A[i] << "\t";

}

cout << endl;




for (int i = 0, j = 0; i < size; i++) {

tmp = A[i];
for (j = i - 1; j >= 0 && A[j] < tmp;j--) {
A[j + 1] = A[j];
}
A[j + 1] = tmp;

}

cout << endl << "Sort massive:" << endl;

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

cout << A[i] << "\t";

cout << endl;

system("pause");

Дан двумерный массив размерностью 5х5, заполненный случайными числами из диапазона от 0 до 100. Обменять местами элементы массива, расположенные на главной диагонали, с элементами массива, расположенными на побочной диагонали.

srand(time(0));

const int size = 5;

int A[size][size]{};

for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
A[i][j] = rand() % 100;
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

cout << endl << endl;




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

{

for (size_t j = 0; j < size; j++)
{
if (j == i) {
int tmp = A[i][j];
A[i][j] = A[i][size-j-1];
A[i][size - j - 1] = tmp;
}
}

}




cout << "Result:" << endl;

for (size_t i = 0; i < size; i++) {

for (size_t j = 0; j < size; j++) {
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

system("pause");

Отсортируйте по неубыванию методом "пузырька" одномерный целочисленный массив, заданный случайными числами на промежутке [-100; 100). Выведите на экран исходный и отсортированный массивы.

srand (time (0));

const int size = 10;

int A[size];




cout << "Massive A:" << endl;

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

A[i] = rand () % 201 - 100;
cout << A[i] << "\t";

}

int temp = 0;




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

for (int j = 1; j < size - i; j++) {
if (A[j - 1] > A[j]) {
temp = A[j];
A[j] = A[j - 1];
A[j - 1] = temp;
}
}

}

cout << endl << "Sort massive:" << endl;

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

cout << A[i] << "\t";

system("pause");

Программа находит максимальное число в определённой области в двумерном массиве.

void main() {


srand(time(NULL));
setlocale(LC_ALL, "rus");

const int q = 6;
int A[q][q];
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
A[i][j] = rand() % 100;
cout << A[i][j] << "\t";
}
cout << "\n\n";
}
cout << "\n\n";
char choice;
do
{
int max = A[0][0];
cout << "Программа находит максимальное число в заданной области" << endl;
cout << "1-*** 2-*.. 3-*** 4-..." << endl
<< " .** **. .*. .*." << endl
<< " ..* *** ... ***" << endl << endl
<< "5-*** 6-*.* 7-*.. 8-..*" << endl
<< " .*. *** **. .**" << endl
<< " *** *.* *.. ..*" << endl << endl
<< "9-*** 0-..*" << endl
<< " **. .**" << endl
<< " *.. ***" << endl << endl
<< "I(i) - Инициализация нового массива" << endl;
cout << "Сделайте свой выбор:";
cin >> choice;
switch (choice) {
case '1':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if ( j >= i)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max < A[i][j] && j >= i)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '2':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j <= i)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max < A[i][j] && j <= i)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '3':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j >= i&&j <= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max < A[i][j] && j >= i&&j <= q - i - 1)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '4':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j <= i&&j >= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max < A[i][j] && j <= i&&j >= q - i - 1)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '5':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j <= i&&j >= q - i - 1 || j >= i&&j <= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if ((max<A[i][j] && j <= i&&j >= q - i - 1) || (j >= i&&j <= q - i - 1 && max<A[i][j]))
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '6':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j >= i&&j >= q - i - 1 || j <= i&&j <= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if ((max<A[i][j] && j >= i&&j >= q - i - 1) || (j <= i&&j <= q - i - 1 && max<A[i][j]))
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '7':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j <= i&&j <= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max<A[i][j] && j <= i&&j <= q - i - 1)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '8':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j >= i&&j >= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max<A[i][j] && j >= i&&j >= q - i - 1)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '9':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j <= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max<A[i][j] && j <= q - i - 1)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '0':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j >= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max<A[i][j] && j >= q - i - 1)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case 'I':
case 'i':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
A[i][j] = rand() % 100;
cout << A[i][j] << "\t";
}
cout << "\n\n";
}
cout << "\n\n";
break;
}
cout << "Если хотите продолжить, нажмите C: ";
cin >> choice;
} while (choice == 'C'|| choice == 'c');

system("pause");
}

22 апреля 2016 г.

Дан массив из 20 чисел. Отсортировать первую и третью пятерку чисел по возрастанию, а вторую и четвертую цепочку чисел по убыванию.

srand(time(0));
const int size = 50;
int A[size];

for (int i = 0; i < size; i++){
A[i] = rand() % 61 - 30;
cout << A[i] << "\t";
if ((i + 1) % 5 == 0)
cout << endl;
}
cout << "============================================" << endl;
int tmp = 0;
bool rele = false;//переключалка
int i_temp = 0;//нижняя граница
int size_temp=5;//верхняя граница
for (;size_temp<=size; i_temp += 5, size_temp += 5){
if (rele==false){
for (int i = i_temp; i < size_temp; i++){
for (int j = i_temp+1; j < size_temp; j++){
if (A[j - 1] > A[j]){
tmp = A[j];
A[j] = A[j - 1];
A[j - 1] = tmp;
}
}
}
rele = true;
}
else{
for (int i = i_temp; i < size_temp; i++){
for (int j = i_temp + 1; j < size_temp; j++){
if (A[j - 1] < A[j]){
tmp = A[j];
A[j] = A[j - 1];
A[j - 1] = tmp;
}
}
}
rele = false;
}
}
for (int i = 0; i < size; i++){
cout << A[i] << "\t";
if ((i+1)%5==0)
cout << endl;
}
system("pause");

21 апреля 2016 г.

Создать массив из 20 случайных чисел в диапазоне от 0 до 200. Определить количество одноразрядных, двухразрядных и трёхразрядных чисел в процентном отношении.

srand(time(0));
const int size = 20;
int A[size]{};

for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 201;
cout << A[i] << " ";
}
cout << endl;
int index_1 = 0;
int index_2 = 0;
int index_3 = 0;
for (size_t i = 0; i < size; i++)
{
if (A[i] > 99)
index_3++;
else if (A[i] > 9 && A[i] < 100)
index_2++;
else
index_1++;
}
cout << "three- digit number - " << index_3 << endl
<< "two- digit number - " << index_2 << endl
<< "one- digit number - " << index_1 << endl;
system("pause");

Создать массив из 20 целых случайных чисел в диапазоне от 0 до 100. Определить и вывести на экран все простые числа из этого массива.

srand(time(0));
const int size = 20;
int A[size]{};

for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 101;
cout << A[i] << " ";
}
cout << endl << "simple numbers is: ";
for (size_t i = 0; i < size; i++)
{
for (int j = 2; j <= A[i]; j++)
{
if (A[i] %j == 0)
{
if (A[i] != j)
break;
cout << A[i] << " ";
break;
}
}
}
cout << endl;
system("pause");

Даны 2 массива размерности M и N соответственно. Необходимо переписать в третий массив общие элементы первых двух массивов без повторений.

srand(time(0));
const int size_a = 10;
const int size_b = 8;
const int size_c = size_a + size_b;
int A[size_a]{5,9,22,1,5,4,7,6,8,4};
int B[size_b]{5,4,1,5,4,8,9,5};
int C[size_c]{};
cout << "Massive A:" << endl;
for (size_t i = 0; i < size_a; i++)
{
//A[i] = rand() % 101;
cout << A[i] << " ";
}
cout << endl << "Massive B:" << endl;
for (size_t i = 0; i < size_b; i++)
{
//B[i] = rand() % 101;
cout << B[i] << " ";
}

int povtor = 0;
int index_c = 0;
for (int i = 0; i < size_a; i++)
{
for (int j = 0; j < size_b; j++)
{
if (A[i] == B[j]);
{
for (int k = 0; k < size_c; k++)
{
if (C[k] == B[j])
{
povtor++;
}
}
if (povtor==0)
{
C[index_c] = B[j];
index_c++;
}
povtor = 0;
}
}
}


cout << endl << "Massive C:" << endl;
for (size_t i = 0; i < size_c; i++)
{
cout << C[i] << " ";
}
cout << endl;
system("pause");

Создать массив из 10 целых случайных чисел. Изменить порядок следования элементов массива на противоположный (1-й элемент меняется с 10-м, 2-й элемент с 9-м и т.д.).

srand(time(0));
const int size = 10;
int A[size]{};

for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 101;
cout << A[i] << " ";
}
cout << endl;
for (size_t i = 0; i < size/2; i++)
{
A[i] += A[size-i-1];
A[size - i - 1] = A[i] - A[size - i - 1];
A[i] = A[i] - A[size - i - 1];
}
for (size_t i = 0; i < size; i++)
{
cout << A[i] << " ";
}
cout << endl;
system("pause");

Создать два массива A и B из 5 элементов. Создать третий массив C из 10 элементов, в который копируются элементы из первого и второго массива поочередно (например, С[0]=A[0], c[1]=B[0], C[2]=A[1], C[3]=B[1] и т.д.).

srand(time(0));
const int size_a = 10;
const int size_b = 5;
const int size_c = size_a + size_b;
int A[size_a]{};
int B[size_b]{};
int C[size_c]{};

for (size_t i = 0; i < size_a; i++)
{
A[i] = rand() % 101;
cout << A[i] << " ";
}
cout << endl;
for (size_t i = 0; i < size_b; i++)
{
B[i] = rand() % 101;
cout << B[i] << " ";
}
cout << endl;
int index_a = 0;
int index_b = 0;
for (size_t i = 0; i < size_c;)
{
if (index_a < size_a)
{
C[i] = A[index_a];
index_a++;
i++;
}
if (index_b < size_b)
{
C[i] = B[index_b];
index_b++;
i++;
}

}
for (size_t i = 0; i < size_c; i++)
{
cout << C[i] << " ";
}
cout << endl;
system("pause");

Даны 2 массива размерности M и N соответственно. Необходимо переписать в третий массив те элементы первого массива, которых нет во втором массиве, без повторений.

srand(time(0));
const int size_a = 10;
const int size_b = 8;
const int size_c = size_a + size_b;
int A[size_a]{5,9,22,1,5,4,22,6,8,4};
int B[size_b]{5,4,1,5,4,8,9,5};
int C[size_c]{};
cout << "Massive A:" << endl;
for (size_t i = 0; i < size_a; i++)
{
//A[i] = rand() % 101;
cout << A[i] << " ";
}
cout << endl << "Massive B:" << endl;
for (size_t i = 0; i < size_b; i++)
{
//B[i] = rand() % 101;
cout << B[i] << " ";
}

int povtor = 0;
int index_c = 0;
for (int i = 0; i < size_a; i++)
{
for (int j = 0; j < size_b; j++)
{
if (B[j] == A[i])
{
povtor++;
}
}
if (povtor==0)
{
int tmp = 0;
for (int k = 0; k < size_c; k++)
{
if (C[k] == A[i])
tmp++;
}
if (tmp == 0)
{
C[index_c] = A[i];
index_c++;
}
}
povtor = 0;
}

cout << endl << "Massive C:" << endl;
for (size_t i = 0; i < size_c; i++)
{
cout << C[i] << " ";
}
cout << endl;
system("pause");

Написать программу, копирующую один массив в другой следующим образом: сначала копируются последовательно все элементы, большие 0, затем последовательно все элементы, равные 0, а затем последовательно все элементы, меньшие 0.

srand(time(0));
const int size_a = 20;
const int size_b = size_a;
int A[size_a]{};
int B[size_b]{};

for (size_t i = 0; i < size_a; i++)
{
A[i] = rand() % 101-50;
cout << A[i] << " ";
}
cout << endl;

cout << endl;
int index = 0;
for (size_t i = 0; i < size_b; i++)
{
if (A[i] < 0)
{
B[index] = A[i];
index++;
}
}
for (size_t i = 0; i < size_a; i++)
{
if (A[i] == 0)
{
B[index] = A[i];
index++;
}
}
for (size_t i = 0; i < size_a; i++)
{
if (A[i] > 0)
{
B[index] = A[i];
index++;
}
}
for (size_t i = 0; i < size_b; i++)
{
cout << B[i] << " ";
}
cout << endl;
system("pause");

Написать программу, копирующую последовательно элементы одного массива размером 10 элементов в 2 массива размером 5 элементов каждый (задача, обратная 18).

srand(time(0));
const int size_a = 25;
const int size_b = size_a/2;
const int size_c = size_a - size_b;
int A[size_a]{};
int B[size_b]{};
int C[size_c]{};
int index_a = 0;
cout << "Massive A:" << endl;
for (size_t i = 0; i < size_a; i++)
{
A[i] = rand() % 101;
cout << A[i] << "\t";
}
cout << endl;
for (size_t i = 0; i < size_b; i++)
{
B[i] = A[index_a];
index_a++;
}
for (size_t i = 0; i < size_c; i++)
{
C[i] = A[index_a];
index_a++;
}

cout << endl << "Massive B:" << endl;
for (size_t i = 0; i < size_b; i++)
{
cout << B[i] << "\t";
}
cout << endl << "Massive C:" << endl;
for (size_t i = 0; i < size_c; i++)
{
cout << C[i] << "\t";
}
cout << endl;
system("pause");

Создать массив из 10 целых случайных чисел. Поменять местами соседние элементы массива.

srand(time(0));
const int size = 10;
int A[size]{};

for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 101;
cout << A[i] << " ";
}
cout << endl;
for (size_t i = 0; i < size; i+=2)
{
A[i] += A[i+1];
A[i + 1] = A[i] - A[i + 1];
A[i] = A[i] - A[i + 1];
}
for (size_t i = 0; i < size; i++)
{
cout << A[i] << " ";
}
cout << endl;
system("pause");

Ввести массив из 10 вещественных чисел. Определить, сколько элементов массива не имеют дробной части.

srand(time(0));
const int size = 10;
double A[size]{};
int index = 0;

cout << "Enter 10 digits" << endl;
for (size_t i = 0; i < size; i++)
{
cin >> A[i];
}

int tmp;
cout << endl;
for (size_t i = 0; i < size; i++)
{
tmp = A[i];
if (A[i] == tmp)
{
index++;
}
cout << tmp << endl;
}
cout << endl;
cout << "Int digits - " << index << endl;

system("pause");

Создать массив из 20 случайных чисел. Определить минимальный и максимальный элемент массива (вывести значение и порядковый номер).

srand(time(0));
const int size = 20;
int A[size]{};

for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 101;
cout << A[i] << " ";
}
cout << endl;

int min = A[0];
int max = A[0];
int index_min = 0;
int index_max = 0;

for (size_t i = 0; i < size; i++)
{
if (A[i] <= min)
{
min = A[i];
index_min = i;
}
if (A[i] >= max)
{
max = A[i];
index_max = i;
}


}
cout << "Min: " << "A[" << index_min << "]= " << min << endl
<< "Max: " << "A[" << index_max << "]= " << max << endl;
system("pause");

Создать массив из 20 случайных чисел в диапазоне от -30 до 10. Написать программу, определяющую сумму элементов массива, находящихся в массиве до первого положительного элемента.

srand(time(0));
const int size = 20;
int A[size]{};
int summ = 0;
int index;
for (size_t i=0; i < size; i++)
{
A[i] = rand() % 41 - 30;
cout << A[i] << " ";
}

cout << endl;

for (size_t i = 0; i < size; i++)
{

if (A[i] > 0)
break;
else
summ += A[i];
}
cout << summ << endl;
system("pause");

Создать массив из 20 случайных чисел в диапазоне от -10 до 30. Написать программу, определяющую сумму элементов массива, находящихся в массиве после первого отрицательного элемента.

srand(time(0));
const int size = 20;
int A[size]{};
for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 41-10;
cout << A[i] << "\t";
}
cout << endl;

int summ = 0;
bool rele = false;

for (size_t i = 0; i < size; i++)
{
if (A[i] >= 0 || rele == true)
continue;
else
{
rele = true;
cout << i << "\t";
for (size_t j = i; j < size; j++)
{
summ += A[j];
}
}
}
cout << "Summ = " << summ << endl;
system("pause");

Создать массив из 10 целых случайных чисел в диапазоне от 0 до 100. Определить сумму элементов массива, кратных 3, но не кратных 5.

srand(time(0));
const int size = 10;
int A[size]{};
for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 101;
cout << A[i] << "\t";
}
cout << endl;
int summ = 0;

for (size_t i = 0; i < size; i++)
{
if (A[i] % 3 == 0 && A[i] % 5 != 0)
summ+=A[i];
}
cout << "Summ = " << summ << endl;
system("pause");

Создать массив из 10 целых случайных чисел в диапазоне от 0 до 100. Определить количество элементов массива, кратных 3, 5, 7.

srand(time(0));
const int size = 10;
int A[size]{};
for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 101;
cout << A[i] << "\t";
}
cout << endl;
int index_3 = 0;
int index_5 = 0;
int index_7 = 0;

for (size_t i = 0; i < size; i++)
{
if (A[i] % 3 == 0)
index_3++;
if (A[i] % 5 == 0)
index_5++;
if (A[i] % 7 == 0)
index_7++;
}
cout << "3 fold - " << index_3 << endl
<< "5 fold - " << index_5 << endl
<< "7 fold - " << index_7 << endl;
system("pause");

Написать программу, которая предлагает пользователю ввести число и, затем подсчитывает, сколько раз это число встречается в массиве.

srand(time(0));
const int size = 20;
int A[size]{};
for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 101;
cout << A[i] << "\t";
}
cout << endl;
int digit;
int index = 0;
cout << "Enter digit:";
cin >> digit;
cout << endl;
for (size_t i = 0; i < size; i++)
{
if (A[i] == digit)
index++;
}

if (index)
cout << index << " times the number found" << endl;
else
cout << "Digit not found in massive" << endl;
system("pause");

Создать символьный массив (char-массив) из 10 элементов. Определить сколько в нём цифр, букв и знаков пунктуации.

enum ConsoleColors
{
BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN,
L_GRAY, D_GRAY, L_BLUE, L_GREEN, L_CYAN,
L_RED, L_MAGENTA, YELLOW, WHITE
};

void main()
{
srand(time(0));
const int size = 10;
char A[size] = {};
int index_digit = 0;
int index_symbol = 0;
int index_punc = 0;
for (size_t i = 0; i < size; i++)
{
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | i+1));
A[i] = rand() % 255;
cout << A[i] << " ";
if (A[i] >= 48 && A[i] <= 57)
{
index_digit++;
continue;
}
if (A[i] >= 44 && A[i] <= 46)
{
index_punc++;
continue;
}
index_symbol++;


}
cout << endl;
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | L_GRAY));
cout << "Digits - " << index_digit << endl
<< "Symbols - " << index_symbol << endl
<< "Punctuations - " << index_punc << endl;
system("pause");
}

22 февраля 2016 г.

Определить, является ли введённое число любой разрядности палиндромом (например, 1234321 – палиндром, 12345 – не палиндром).

int digit;
cout << "Enter digit:";
cin >> digit;

int old_digit = digit;
int new_digit = 0;
while (digit > 0)
{
int tmp = digit % 10;
new_digit = new_digit * 10 + tmp;
digit = digit / 10;
}
if (new_digit == old_digit)
cout << "palindrom" << endl;
else
cout << "No palindrom" << endl;
system("pause");

Написать программу, которая выводят на экран ромб (пользователь вводит диагональ), состоящий из символа '*'.

int digit;

cout << "Enter digit: ";
cin >> digit;
cout << "\n";
digit /= 2;
digit++;

for (int i = 0; i<digit * 2 - 1; i++)
{
for (int y = 0; y<digit * 2 - 1; y++)
{
if (y >= digit - i - 1 && y <= digit - 1 + i&&i<digit + y&&y<digit * 3 - i - 2)
{
cout << "*";
continue;
}
cout << " ";
}
cout << "\n";
}
system("pause");

Написать программу, которая выводят на экран ромб (пользователь вводит диагональ), состоящий из символа '*'. Фигура внутри пустая.

int digit;

cout << "Enter digit: ";
cin >> digit;
cout << "\n";


for (int i = 0; i<digit; i++)
{
for (int j = 0; j<digit; j++)
{
if ( j == digit / 2 + i || j == digit / 2 - i || j == i - digit / 2 || j==digit-i+digit/2-1)
cout << "*";
else
cout << " ";
}
cout << endl;
}
system("pause");

Написать программу, которая выводит на экран елочку.

srand(time(0));
HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);

int length_of_sections, summ_sections;
cout << "Enter summ sections:";
cin >> summ_sections;
do
{
cout << "Enter length of sections(only even digit):";
cin >> length_of_sections;
} while (length_of_sections % 2 == 0);

int front=0;

for (int i = 1; i <= summ_sections; i++)
{
front++;
if (front == 15)
front = 1;

for (int i = 0; i<length_of_sections / 2 + 1; i++)
{
for (int j = 0; j<length_of_sections; j++)
{
if (j <= length_of_sections / 2 + i &&j >= length_of_sections / 2 - i)
{
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | front));
cout << "*";
}
else
{
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | front));
cout << " ";
}
}
cout << "\n";
}
}
system("pause");

Тоже самое, но фигура перевернута и пустая внутри.

HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
int length_of_sections, summ_sections;
cout << "Enter summ sections:";
cin >> summ_sections;
do
{
cout << "Enter length of sections(only even digit):";
cin >> length_of_sections;
} while (length_of_sections % 2 == 0);

int front=0;

for (int i = 1; i <= summ_sections; i++)
{
front++;
if (front == 15)
front = 1;

for (int i = 0; i<length_of_sections / 2 + 1; i++)
{
for (int j = 0; j < length_of_sections; j++)
{
if (i == 0 || j == i || j == length_of_sections - i - 1)
{
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | front));
cout << "*";
}
else
cout << " ";
}
cout <<endl;
}
}
system("pause");

Написать программу, которая выводит на экран все "счастливые" номера трамвайных билетов и подсчитывает их общее количество.

for (int digit = 100000; digit <= 999999; digit++)
{
int first = 0;
int second = 0;
int tmp = digit;
while (tmp > 0)
{
if (tmp < 1000)
first += tmp % 10;
else
second += tmp % 10;
tmp /= 10;
}
if (first == second)
cout << digit << endl;
}
system("pause");

Нарисовать звездочками флаг Великобритании.

HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
int digit;
do
{
cout << "Enter digit(only even digit):";
cin >> digit;
} while (digit % 2 == 0);

cout << endl;

for (int i = 0; i < digit; i++)
{
for (int j = 0; j < digit; j++)
{
if (j == i || j == digit - i-1||i==digit/2||j==digit/2)
{
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | RED));
cout << char(219);

}
else if (i == digit / 2 - 1 || j == digit / 2 - 1 || i == digit / 2 + 1 || j == digit / 2 + 1||
j == i-1 || j == digit - i - 2|| j == i+1 || j == digit - i)
{
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | WHITE));
cout << char(219);
}
else
{
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | BLUE));
cout << char(219);
}

}
cout << endl;
}
cout << endl;
system("pause");

Вывести на экран таблицу умножения от 1 до 9 в виде трех строк и трех колонок.

HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
int front = 1;
for (int i = 1; i <= 9; i+=3)
{
for (int j = 1; j < 10; j++)
{
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | front++));
cout << i << " * " << j << " = " << i*j << "\t";
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | front++));
cout << i + 1 << " * " << j << " = " << (i + 1)*j << "\t";
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | front++));
cout << i + 2 << " * " << 2 << " = " << (i + 2)*j << endl;
front -= 3;
}
cout << endl;
front += 3;
}
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | WHITE));
system("pause");

Написать программу, которая выводят на экран флаг Украины (пользователь вводит ширину, высота равна трети ширины), состоящий из символа '*'. То же, но фигура внутри пустая.

HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
int digit;
do
{
cout << "Enter digit(digit>\9):";
cin >> digit;
} while (digit < 10|| (digit / 3 / 2)%2!=0);

for (int i = 0; i <= digit/3; i ++)
{
for (int j = 0; j < digit; j++)
{
if (i <= digit / 3 / 2)
{
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | L_BLUE));
cout << char(219);
}
else
{
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | YELLOW));
cout << char(219);
}
}
cout << endl;
}
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | WHITE));
cout << endl << endl;
for (int i = 0; i <= digit / 3; i++)
{
for (int j = 0; j < digit; j++)
{
if (i == 0||(j==0&&i<=digit/3/2)||(j==digit-1 && i <= digit / 3 / 2))
{
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | L_BLUE));
cout << char(219);
}
else if (i == digit / 3||(j==0&&i>= digit / 3 / 2) || (j == digit - 1 && i >= digit / 3 / 2))
{
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | YELLOW));
cout << char(219);
}
else
cout << " ";
}
cout << endl;
}
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | WHITE));
system("pause");

Создать символьный массив (char-массив) из 10 элементов. Определить сколько в нём цифр, букв и знаков пунктуации.

HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);

srand(time(0));
const int size = 10;
char A[size] = {};
int index_digit = 0;
int index_symbol = 0;
int index_punc = 0;
for (size_t i = 0; i < size; i++)
{
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | i+1));
A[i] = rand() % 255;
cout << A[i] << " ";
if (A[i] >= 48 && A[i] <= 57)
{
index_digit++;
continue;
}
if (A[i] >= 44 && A[i] <= 46)
{
index_punc++;
continue;
}
index_symbol++;


}
cout << endl;
SetConsoleTextAttribute(h, (WORD)(BLACK << 4 | L_GRAY));
cout << "Digits - " << index_digit << endl
<< "Symbols - " << index_symbol << endl
<< "Punctuations - " << index_punc << endl;
system("pause");

Написать программу, которая предлагает пользователю ввести число и, затем подсчитывает, сколько раз это число встречается в массиве.

srand(time(0));
const int size = 20;
int A[size]{};
for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 101;
cout << A[i] << "\t";
}
cout << endl;
int digit;
int index = 0;
cout << "Enter digit:";
cin >> digit;
cout << endl;
for (size_t i = 0; i < size; i++)
{
if (A[i] == digit)
index++;
}

if (index)
cout << index << " times the number found" << endl;
else
cout << "Digit not found in massive" << endl;
system("pause");

Создать массив из 10 целых случайных чисел в диапазоне от 0 до 100. Определить количество элементов массива, кратных 3, 5, 7.

srand(time(0));
const int size = 10;
int A[size]{};
for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 101;
cout << A[i] << "\t";
}
cout << endl;
int index_3 = 0;
int index_5 = 0;
int index_7 = 0;

for (size_t i = 0; i < size; i++)
{
if (A[i] % 3 == 0)
index_3++;
if (A[i] % 5 == 0)
index_5++;
if (A[i] % 7 == 0)
index_7++;
}
cout << "3 fold - " << index_3 << endl
<< "5 fold - " << index_5 << endl
<< "7 fold - " << index_7 << endl;
system("pause");

Создать массив из 10 целых случайных чисел в диапазоне от 0 до 100. Определить сумму элементов массива, кратных 3, но не кратных 5.

srand(time(0));
const int size = 10;
int A[size]{};
for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 101;
cout << A[i] << "\t";
}
cout << endl;
int summ = 0;

for (size_t i = 0; i < size; i++)
{
if (A[i] % 3 == 0 && A[i] % 5 != 0)
summ+=A[i];
}
cout << "Summ = " << summ << endl;
system("pause");

Создать массив из 20 случайных чисел в диапазоне от -10 до 30. Написать программу, определяющую сумму элементов массива, находящихся в массиве после первого отрицательного элемента.

srand(time(0));
const int size = 20;
int A[size]{};
for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 41-10;
cout << A[i] << "\t";
}
cout << endl;

int summ = 0;
bool rele = false;

for (size_t i = 0; i < size; i++)
{
if (A[i] >= 0 || rele == true)
continue;
else
{
rele = true;
cout << i << "\t";
for (size_t j = i; j < size; j++)
{
summ += A[j];
}
}
}
cout << "Summ = " << summ << endl;
system("pause");

Создать массив из 20 случайных чисел в диапазоне от -30 до 10. Написать программу, определяющую сумму элементов массива, находящихся в массиве до первого положительного элемента.

srand(time(0));
const int size = 20;
int A[size]{};
int summ = 0;
int index;
for (size_t i=0; i < size; i++)
{
A[i] = rand() % 41 - 30;
cout << A[i] << " ";
}

cout << endl;

for (size_t i = 0; i < size; i++)
{

if (A[i] > 0)
break;
else
summ += A[i];
}
cout << summ << endl;
system("pause");

Ввести массив из 10 вещественных чисел. Определить, сколько элементов массива не имеют дробной части.

srand(time(0));
const int size = 10;
double A[size]{};
int index = 0;

cout << "Enter 10 digits" << endl;
for (size_t i = 0; i < size; i++)
{
cin >> A[i];
}

int tmp;
cout << endl;
for (size_t i = 0; i < size; i++)
{
tmp = A[i];
if (A[i] == tmp)
{
index++;
}
cout << tmp << endl;
}
cout << endl;
cout << "Int digits - " << index << endl;

system("pause");

Создать массив из 20 случайных чисел. Определить минимальный и максимальный элемент массива (вывести значение и порядковый номер).

srand(time(0));
const int size = 20;
int A[size]{};

for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 101;
cout << A[i] << " ";
}
cout << endl;

int min = A[0];
int max = A[0];
int index_min = 0;
int index_max = 0;

for (size_t i = 0; i < size; i++)
{
if (A[i] <= min)
{
min = A[i];
index_min = i;
}
if (A[i] >= max)
{
max = A[i];
index_max = i;
}


}
cout << "Min: " << "A[" << index_min << "]= " << min << endl
<< "Max: " << "A[" << index_max << "]= " << max << endl;
system("pause");

Создать массив из 20 случайных чисел в диапазоне от 0 до 200. Определить количество одноразрядных, двухразрядных и трёхразрядных чисел в процентном отношении.

srand(time(0));
const int size = 20;
int A[size]{};

for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 201;
cout << A[i] << " ";
}
cout << endl;
int index_1 = 0;
int index_2 = 0;
int index_3 = 0;
for (size_t i = 0; i < size; i++)
{
if (A[i] > 99)
index_3++;
else if (A[i] > 9 && A[i] < 100)
index_2++;
else
index_1++;
}
cout << "three- digit number - " << index_3 << endl
<< "two- digit number - " << index_2 << endl
<< "one- digit number - " << index_1 << endl;
system("pause");

Создать массив из 20 целых случайных чисел в диапазоне от 0 до 100. Определить и вывести на экран все простые числа из этого массива.

srand(time(0));
const int size = 20;
int A[size]{};

for (size_t i = 0; i < size; i++)
{
A[i] = rand() % 101;
cout << A[i] << " ";
}
cout << endl << "simple numbers is: ";
for (size_t i = 0; i < size; i++)
{
for (int j = 2; j <= A[i]; j++)
{
if (A[i] %j == 0)
{
if (A[i] != j)
break;
cout << A[i] << " ";
break;
}
}
}
cout << endl;
system("pause");

Даны 2 массива размерности M и N соответственно. Необходимо переписать в третий массив те элементы первого массива, которых нет во втором массиве, без повторений.

srand(time(0));
const int size_a = 10;
const int size_b = 8;
const int size_c = size_a + size_b;
int A[size_a]{5,9,22,1,5,4,22,6,8,4};
int B[size_b]{5,4,1,5,4,8,9,5};
int C[size_c]{};
cout << "Massive A:" << endl;
for (size_t i = 0; i < size_a; i++)
{
//A[i] = rand() % 101;
cout << A[i] << " ";
}
cout << endl << "Massive B:" << endl;
for (size_t i = 0; i < size_b; i++)
{
//B[i] = rand() % 101;
cout << B[i] << " ";
}

int povtor = 0;
int index_c = 0;
for (int i = 0; i < size_a; i++)
{
for (int j = 0; j < size_b; j++)
{
if (B[j] == A[i])
{
povtor++;
}
}
if (povtor==0)
{
int tmp = 0;
for (int k = 0; k < size_c; k++)
{
if (C[k] == A[i])
tmp++;
}
if (tmp == 0)
{
C[index_c] = A[i];
index_c++;
}
}
povtor = 0;
}

cout << endl << "Massive C:" << endl;
for (size_t i = 0; i < size_c; i++)
{
cout << C[i] << " ";
}
cout << endl;
system("pause");

}

Дан массив из 20 чисел. Отсортировать первую и третью пятерку чисел по возрастанию, а вторую и четвертую цепочку чисел по убыванию.

srand(time(0));
const int size = 50;
int A[size];

//Мой код универсален. Размерность массива не имеет значения. Каждые 5 элементов меняется направление сортировки.

for (int i = 0; i < size; i++){
A[i] = rand() % 61 - 30;
cout << A[i] << "\t";
if ((i + 1) % 5 == 0)
cout << endl;
}
cout << "============================================" << endl;
int tmp = 0;
bool rele = false;//переключалка
int i_temp = 0;//нижняя граница
int size_temp=5;//верхняя граница
for (;size_temp<=size; i_temp += 5, size_temp += 5){
if (rele==false){
for (int i = i_temp; i < size_temp; i++){
for (int j = i_temp+1; j < size_temp; j++){
if (A[j - 1] > A[j]){
tmp = A[j];
A[j] = A[j - 1];
A[j - 1] = tmp;
}
}
}
rele = true;
}
else{
for (int i = i_temp; i < size_temp; i++){
for (int j = i_temp + 1; j < size_temp; j++){
if (A[j - 1] < A[j]){
tmp = A[j];
A[j] = A[j - 1];
A[j - 1] = tmp;
}
}
}
rele = false;
}
}
for (int i = 0; i < size; i++){
cout << A[i] << "\t";
if ((i+1)%5==0)
cout << endl;
}
system("pause");

Поместить в одномерный массив числа от 1 до 30 (31). И показать календарь на текущий месяц.

int month;
do {
cout << "Enter number of month(1-12):";
cin >> month;
} while (month < 1 || month > 12);
cout << "Mo\tTu\tWe\tTh\tFr\tSa\tSu" << endl;
switch (month) {
case 1:{
int A[31]{};
for (int i = 1; i <= 31; i++)
A[i - 1] = i;
for (int i = 0; i < 35; i++) {
if (i < 4) {
cout << "\t";
continue;
}
cout << A[i - 4] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;
case 2:{
int A[29]{};
for (int i = 1; i <= 29; i++)
A[i - 1] = i;
for (int i = 0; i <29; i++) {
cout << A[i] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;
case 3: {
int A[31]{};
for (int i = 1; i <= 31; i++)
A[i - 1] = i;
for (int i = 0; i < 32; i++) {
if (i == 0) {
cout << "\t";
continue;
}
cout << A[i - 1] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;
case 4: {
int A[30]{};
for (int i = 1; i <= 30; i++)
A[i - 1] = i;
for (int i = 0; i < 34; i++) {
if (i < 4) {
cout << "\t";
continue;
}
cout << A[i - 4] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;
case 5: {
int A[31]{};
for (int i = 1; i <= 31; i++)
A[i - 1] = i;
for (int i = 0; i < 37; i++) {
if (i < 6) {
cout << "\t";
continue;
}
cout << A[i - 6] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;
case 6: {
int A[30]{};
for (int i = 1; i <= 30; i++)
A[i - 1] = i;
for (int i = 0; i < 32; i++) {
if (i < 2) {
cout << "\t";
continue;
}
cout << A[i - 2] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;
case 7: {
int A[31]{};
for (int i = 1; i <= 31; i++)
A[i - 1] = i;
for (int i = 0; i < 35; i++) {
if (i < 4) {
cout << "\t";
continue;
}
cout << A[i - 4] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;
case 8: {
int A[31]{};
for (int i = 0; i < 31; i++) {
A[i - 1] = i+1;
cout << A[i-1] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;
case 9: {
int A[30]{};
for (int i = 1; i <= 30; i++)
A[i - 1] = i;
for (int i = 0; i < 33; i++) {
if (i < 3) {
cout << "\t";
continue;
}
cout << A[i - 3] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;
case 10: {
int A[31]{};
for (int i = 1; i <= 31; i++)
A[i - 1] = i;
for (int i = 0; i < 36; i++) {
if (i < 5) {
cout << "\t";
continue;
}
cout << A[i - 5] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;
case 11: {
int A[30]{};
for (int i = 1; i <= 30; i++)
A[i - 1] = i;
for (int i = 0; i < 31; i++) {
if (i==0) {
cout << "\t";
continue;
}
cout << A[i - 1] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;
case 12: {
int A[31]{};
for (int i = 1; i <= 31; i++)
A[i - 1] = i;
for (int i = 0; i < 34; i++) {
if (i < 3) {
cout << "\t";
continue;
}
cout << A[i - 3] << "\t";
if ((i + 1) % 7 == 0)
cout << endl;
}
cout << endl;
}
break;
}
system("pause");