Показаны сообщения с ярлыком двумерные массивы. Показать все сообщения
Показаны сообщения с ярлыком двумерные массивы. Показать все сообщения

24 апреля 2016 г.

Дан двумерный массив размерностью 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");

}

Дан двумерный массив размерностью 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");

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

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 сентября 2015 г.

Необходимо создать двумерный массив. Далее написать функцию, которая заполнит его случайными числами от 30 до 60. Создать еще две функции, которые находят максимальный и минимальный элементы этого двумерного массива

void init(int **a, int line, int column);
void out(int **a, int line, int column);
int max(int **a, int line, int column);
int min(int **a, int line, int column);

void main()
{
setlocale(LC_ALL, "rus");

int size_l, size_c;
do
{
cout << "Введите количество строк:";
cin >> size_l;
cout << "Введите количество столбцов:";
cin >> size_c;
//инициализация двумерного массива
int **mas = new int*[size_l];
for (int i = 0; i < size_l; i++)
mas[i] = new int[size_c];

init(mas, size_l, size_c);//вызов функции заполнения массива
out(mas, size_l, size_c);//вызов функции вывода массива на экран

cout << "Максимальное число в массиве: " << max(mas, size_l, size_c) << "\n";
cout << "Минимальное число в массиве: " << min(mas, size_l, size_c) << "\n";

//удаление двумерного массива
for (int i = 0; i < size_l; i++)
delete[]mas[i];
delete[] mas;
cout << "\nЕсли хотите продолжить, нажмите 1:";
cin >> size_l;
cout << "\n";
} while (size_l==1);
}

void init(int **a, int line, int column)
{
for (int i = 0; i < line; i++)
{
for (int j = 0; j < column; j++)
{
a[i][j] = rand() % 30 + 30;
}
}
}

void out(int **a, int line, int column)
{
cout << "\n";
for (int i = 0; i < line; i++)
{
for (int j = 0; j < column; j++)
{
cout<<a[i][j]<<" ";
}
cout << "\n";
}
cout << "\n";
}

int max(int **a, int line, int column)
{
int d = a[0][0];
for (int i = 0; i < line; i++)
{
for (int j = 0; j < column; j++)
{
if (d < a[i][j])
d = a[i][j];
}
}
return d;
}

int min(int **a, int line, int column)
{
int d = a[0][0];
for (int i = 0; i < line; i++)
{
for (int j = 0; j < column; j++)
{
if (d > a[i][j])
d = a[i][j];
}
}
return d;
}

21 июня 2015 г.

Ссылки в качестве результатов функций. Заполнение двумерного массива одинаковыми числами.

#include <iostream>
using namespace std;
int a[10][2];
void main()
{
int & rf(int index); //Прототип функции.
int b;
cout << "Fill array.\n";
for (int i = 0; i<10; i++)
{
cout << i + 1 << " element: ";
cin >> b;
a[i][0] = b;
rf(i) = b;
}
cout << "Show array.\n";
cout << "1-st column 2-nd column" << "\n";
for (int i = 0; i<10; i++)
cout << a[i][0] << "\t\t" << rf(i) << "\n";
}

int &rf(int index)
{
return a[index][1]; //Возврат ссылки на элемент массива.
}

Здесь объявляется глобальный двумерный массив a, состоящий из целых чисел.
В начале функции main() содержится прототип ссылочной функции rf(),
которая возвращает ссылку на целое значение второго столбца массива a,
которое однозначно идентифицируется параметром-индексом index.
Так как функция rf() возвращает ссылку на целое значение, то имя функции
может оказаться слева от оператора присваивания, что продемонстрировано в строке: rf(i) = b;

21 мая 2015 г.

Написать функцию, которая сортирует двумерный массив

void init(int A[][10], int weight, int length);
void out(int A[][10], int weight, int length);
void sort(int A[][10], int weight, int length);

void main()
{
setlocale(LC_ALL, "Russian");
const int length = 10;
const int weight = 15;
int A[weight][length];
int a;
do
{
cout << "Эта программа сортирует двумерный массив.\n";
init(A, weight, length);
out(A, weight, length);
sort(A, weight, length);
cout << "\nРезультат:\n";
out(A, weight, length);
cout << "\nЕсли хотите продолжить, нажмите 1\n";
cin >> a;
} while (a == 1);
}

void init(int A[][10], int weight, int length)
{
srand(time(NULL));
for (int i = 0; i < weight; i++)
{
for (int j = 0; j < length; j++)
{
A[i][j] = rand() % 100;
}
}
}

void out(int A[][10], int weight, int length)
{
cout << "\n";
for (int i = 0; i < weight; i++)
{
for (int j = 0; j < length; j++)
{
cout << A[i][j] << "\t";
}
cout << "\n";
}
cout << "\n";
}

void sort(int A[][10], int weight, int length)
{
int x, i, j, k;
for (k = 0; k < weight*length; k++)
{
for (i = 0; i < weight; i++)
{
for (j = 0; j < length; j++)
{
if (A[i][j-1] > A[i][j])
{
x = A[i][j-1];
A[i][j-1] = A[i][j];
A[i][j] = x;
}
}
}
}
}

Написать функцию, которая сортирует в двумерном массиве каждую строку по отдельности

void init(int A[][10], int weight, int length);
void out(int A[][10], int weight, int length);
void sort(int A[][10], int weight, int length);

void main()
{
setlocale(LC_ALL, "Russian");
const int length = 10;
const int weight = 15;
int A[weight][length];
int a;
do
{
cout << "Эта программа сортирует в двумерном массиве каждую строку по отдельности.\n";
init(A, weight, length);
out(A, weight, length);
sort(A, weight, length);
cout << "\nРезультат:\n";
out(A, weight, length);
cout << "\nЕсли хотите продолжить, нажмите 1\n";
cin >> a;
} while (a == 1);
}

void init(int A[][10], int weight, int length)
{
srand(time(NULL));
for (int i = 0; i < weight; i++)
{
for (int j = 0; j < length; j++)
{
A[i][j] = rand() % 100;
}
}
}

void out(int A[][10], int weight, int length)
{
cout << "\n";
for (int i = 0; i < weight; i++)
{
for (int j = 0; j < length; j++)
{
cout << A[i][j] << "\t";
}
cout << "\n";
}
cout << "\n";
}

void sort(int A[][10], int weight, int length)
{
int x, i, j, k;
for (k = 0; k < weight; k++)
{
for (i = 0; i < length; i++)
{
for (j = length - 1; j > i; j--)
{
if (A[k][j - 1] > A[k][j])
{
x = A[k][j - 1];
A[k][j - 1] = A[k][j];
A[k][j] = x;
}
}
}
}
}

Написать функцию, которая сортирует в двумерном массиве каждый столбец по отдельности

void init(int A[][10], int weight, int length);
void out(int A[][10], int weight, int length);
void sort(int A[][10], int weight, int length);

void main()
{
setlocale(LC_ALL, "Russian");
const int length = 10;
const int weight = 15;
int A[weight][length];
int a;
do
{
cout << "Эта программа сортирует в двумерном массиве каждый столбец по отдельности.\n";
init(A, weight, length);
out(A, weight, length);
sort(A, weight, length);
cout << "\nРезультат:\n";
out(A, weight, length);
cout << "\nЕсли хотите продолжить, нажмите 1\n";
cin >> a;
} while (a == 1);
}

void init(int A[][10], int weight, int length)
{
srand(time(NULL));
for (int i = 0; i < weight; i++)
{
for (int j = 0; j < length; j++)
{
A[i][j] = rand() % 100;
}
}
}

void out(int A[][10], int weight, int length)
{
cout << "\n";
for (int i = 0; i < weight; i++)
{
for (int j = 0; j < length; j++)
{
cout << A[i][j] << "\t";
}
cout << "\n";
}
cout << "\n";
}

void sort(int A[][10], int weight, int length)
{
int x, i, j, k;
for (k = 0; k < length; k++)
{
for (i = 0; i < weight; i++)
{
for (j = weight - 1; j > i; j--)
{
if (A[j - 1][k] > A[j][k])
{
x = A[j - 1][k];
A[j - 1][k] = A[j][k];
A[j][k] = x;
}
}
}
}
}

21 апреля 2015 г.

Дана квадратная матрица порядка n (n строк, n столбцов). Найти наибольшее из значений элементов, расположенных в тёмно-синих частях матриц.

 //a)
int max=0;
do
{
const int q=6;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j>=i)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//б)
int max=0;
do
{
const int q=6;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j!=i+1)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//в)
int max=0;
do
{
const int q=6;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j>=i&&j<=q-i-1)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//г)
int max=0;
do
{
const int q=7;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j<=i&&j>=q-i-1)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//д)
int max=0;
do
{
const int q=7;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
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<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//е)
int max=0;
do
{
const int q=7;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
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<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//ж)
int max=0;
do
{
const int q=7;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j<=i&&j<=q-i-1)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//з)
int max=0;
do
{
const int q=7;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j>=i&&j>=q-i-1)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//и)
int max=0;
do
{
const int q=6;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j<=q-i-1)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//к)
int max=0;
do
{
const int q=6;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j>=q-i-1)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);