Версия для углубленного изучения
Исполнитель РОБОТ
Двумерные массивы
Презентация к уроку информатики
9 класс
Автор: Дранов Денис Валерьевич
1
Знакомство с двумерными массивами.
1
В математике таблицы чисел, состоящие из строк и столбцов называются матрицами и записываются в круглых скобках.
2
A i ;j
0 1 2 3 4 5
7
4
4
1
2
1
3
5
7
8
5
0
9
6
4
0
9
0
0
1
2
A[ i ][ j ]
A[ 1 ][ 3 ]
A[ 0 ][ 1 ]
A[ 2 ][ 4 ]
3
Использование двумерных массивов для построения поверхностей.
4
Построение изображения на экране монитора
Столбец
Строка
Каждый пиксель имеет свою координату
5
Нумерация начинается с 0
0 1 2 3
Главная диагональ:
I=J
a 00
a 03
0
1
2
3
a 12
a 11
Побочная диагональ:
I+J=N-1
a 21
a 22
a 33
a 30
Нумерация начинается с 1
1 2 3 4
Главная диагональ:
I=J
a 11
1
a 14
2
3
4
a 22
a 23
Побочная диагональ:
I+J=N+1
a 32
a 33
a 41
a 44
j" width="640"
6
0 1 2 3 4
Удовлетворяет неравенству
i
a 00
0
1
2
3
4
a 11
a 22
a 33
a 44
Удовлетворяет неравенству
i j
n-1" width="640"
7
0 1 2 3 4
a 04
0
1
2
3
4
Удовлетворяет неравенству
i+j
a 13
a 22
a 31
a 40
Удовлетворяет неравенству
i+jn-1
n-1 & i 0 1 2 3 4 a 13 a 11 a 22 a 31 a 33 a 40 a 44 (i+jn-1 & ij)" width="640"
8
Системы неравенств
(i+j
0 1 2 3 4
a 04
(i+jj)
a 00
(i+jn-1 & i
0
1
2
3
4
a 13
a 11
a 22
a 31
a 33
a 40
a 44
(i+jn-1 & ij)
n; for(i=0;i { for(j=0;j { Brush ( RGB ( 255,0 ,0 ),0 ); Rectangle ( i*30,j*30,i*30+28,j*30+28); Fill ( i*30+5,j*30+5 ); } } } Берем кисть красного цвета Рисуем квадрат размером 28 х 28 Закрашиваем квадрат" width="640"
9
Программа
{
int a[10][10];
int i,j,n;
cout
cin n;
for(i=0;i
{
for(j=0;j
{
Brush ( RGB ( 255,0 ,0 ),0 );
Rectangle ( i*30,j*30,i*30+28,j*30+28);
Fill ( i*30+5,j*30+5 );
}
}
}
Берем кисть красного цвета
Рисуем квадрат размером 28 х 28
Закрашиваем квадрат
n; for(i=0;i { for(j=0;j { if (i==j) { Brush ( RGB ( 0,0 ,254 ),0 ); Rectangle ( i*30,j*30 ,i*30+28 ,j*30+28 ); Fill ( i*30+5,j*30+5 ); } else { Brush ( RGB ( 255,0 ,0 ),0 ); Rectangle ( i*30,j*30 ,i*30+28 ,j*30+28 ); Fill ( i*30+5,j*30+5 ); } } } } Для квадратов в главной диагонали Берем синюю кисть Для всех остальных красную" width="640"
10
Программа
{
int a[10][10];
int i,j,n;
cout n;
for(i=0;i
{
for(j=0;j
{
if (i==j)
{
Brush ( RGB ( 0,0 ,254 ),0 );
Rectangle ( i*30,j*30 ,i*30+28 ,j*30+28 );
Fill ( i*30+5,j*30+5 );
}
else {
Brush ( RGB ( 255,0 ,0 ),0 );
Rectangle ( i*30,j*30 ,i*30+28 ,j*30+28 );
Fill ( i*30+5,j*30+5 );
}
}
}
}
Для квадратов в главной диагонали
Берем синюю кисть
Для всех остальных красную
11
for(i=0;i
{
for(j=0;j
{
if (i+j
{
Brush ( RGB ( 0,0 ,254 ),0 );
Rectangle ( i*30,j*30 ,i*30+30 ,j*30+30 );
Fill ( i*30+5,j*30+5 );
}
else {
Brush ( RGB ( 255,0 ,0 ),0 );
Rectangle ( i*30,j*30 ,i*30+30 ,j*30+30 );
Fill ( i*30+5,j*30+5 );
}
}
}
Ошибка ?
12
0 1 2 3
Элемент массива
A[ i ][ j ]
A[ строка ][ столбец ]
a 14
a 11
0
1
2
3
a 23
a 22
a 33
a 32
Решение:
A( строка , столбец )
Point( Y , X )
a 44
a 41
Х
Точка на экране
Point( X , Y )
A( столбец , строка )
Y
13
for(i=0;i
{
for(j=0;j
{
if (i+j
{
Brush ( RGB ( 0,0 ,254 ),0 );
Rectangle ( j*30 , i*30 , j*30+28 , i*30+28 );
Fill ( j*30+5 , i*30+5 );
}
else {
Brush ( RGB ( 255,0 ,0 ),0 );
Rectangle ( j*30 , i*30 , j*30+28 , i*30+28 );
Fill ( j*30+5 , i*30+5 );
}
}
}
14
Задания для самостоятельного решения (матрица имеет нечетный размер)
15
Заполнение числового массива по определенному правилу.
15
Заполнить массив размером 5 × 5 по следующему правилу:
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
16
Программа
{
int a[5][5];
int i,j;
for(i=0;i
{
for(j=0;j
{
if (i==j)a[i][j]=1;
else a[i][j]=0;
cout
}
coutln;
}
}
Перебираем строки
Движемся по строке
В главной диагонали 1 остальные 0
Выводим элемент массива на экран
Строка закончилась, переходим на новую
17
i , 0, 4
j , 0, 4
Фрагмент блок-схемы задачи заполнения главной диагонали единицами
i=j
Да
Нет
a i , j = 1
a i , j = 0
Вывод a i , j
18
Заполнить произвольный массив размером N × N (Где N - размер массива вводится с клавиатуры ) по следующему правилу:
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
n; for(i=0;i { for(j=0;j { a[i][j]=i+1; cout } coutln; } }" width="640"
19
Программа
{
int a[10][10];
int i,j,n;
cout n;
for(i=0;i
{
for(j=0;j
{
a[i][j]=i+1;
cout
}
coutln;
}
}
20
i , 0, N-1
Цикл отвечающий за перебор строк. (Внешний цикл)
j , 0, N-1
a i , j = i+1
Вывод a i , j
Цикл отвечающий за перебор ячеек в каждой строке. (Внутренний цикл)
21
Заполнить произвольный массив размером N x N (Где N - размер массива вводится с клавиатуры ) по следующему правилу:
а) 10001 б) 11111 в) 11111 г)10001
01010 10001 11111 00000
00100 10001 11111 00000
00000 10001 00000 00000
00000 11111 00000 10001
22
Заполнить произвольный массив размером N x N (Где N - размер массива вводится с клавиатуры ) по следующему правилу:
д)10000 е) 10000 ж) 10001
00001 22000 01011
10000 33300 00111
00001 44000 01011
10000 50000 10001
23
Заполнить произвольный массив размером N x N (Где N - размер массива вводится с клавиатуры ) по следующему правилу:
з) 11111 и)00100 к)11111 м)12345
01110 00100 22220 54321
00100 11111 33300 12345
01110 00100 44000 54321
11111 00100 50000 12345
24
Заполнение массива случайными числами.
24
for(i=0;i
{
for(j=0;j
{
r=random(255);
g=random(255);
b=random(255);
Brush ( RGB ( r,g ,b ),0 );
Rectangle(j*30,i*30,j*30+30,i*30+30);
Fill ( j*30+5,i*30+5 );
}
}
Случайным образом задаем цвет для функции RGB
25
for(i=0;i
{
for(j=0;j
{
r=i*(255/n);
Brush ( RGB ( r,0 ,0 ),0 );
Rectangle(j*30,i*30,j*30+30,i*30+30);
Fill ( j*30+5,i*30+5 );
}
}
Для каждой строки определяем свой цвет
26
for(i=0;i
{
for(j=0;j
{
r=i*(255/n);
g=j*(255/n);
Brush ( RGB ( r,g ,0 ),0 );
Rectangle(j*30,i*30,j*30+30,i*30+30);
Fill ( j*30+5,i*30+5 );
}
}
Для строки и столбца определяем свой цвет
n; for(i=0;i { for(j=0;j { a[i][j]=random(21)-10; cout } coutln; } } Элементу массива присваиваем значение определенное случайным образом и выводим его на экран" width="640"
27
Программа
{
int a[10][10];
int i,j,n;
cout
cin n;
for(i=0;i
{
for(j=0;j
{
a[i][j]=random(21)-10;
cout
}
coutln;
}
}
Элементу массива присваиваем значение определенное случайным образом и выводим его на экран
28
i , 0, N-1
Цикл отвечающий за перебор строк. (Внешний цикл)
j , 0, N-1
a i , j =
случайное[-10;10]
Вывод a i , j
Цикл отвечающий за перебор ячеек в каждой строке. (Внутренний цикл)
29
1. Заполнить двумерный массив N x N случайными числами так, чтобы под главной диагональю были случайные числа из интервала [1; 10], над главной диагональю были случайные числа из интервала [-10; -1], а на главной диагонали были 0.
2. Заполнить двумерный массив N x N случайными числами так, чтобы под побочной диагональю были случайные четные числа из интервала [-10; 10], над побочной диагональю были случайные нечетные числа из интервала [-10; 10], а на побочной диагонали были 0.
30
Обработка двумерного массива.
30
Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти сумму элементов лежащих на главной диагонали.
Сумма элементов только в главной диагонали, но перебираем все элементы массива
int s=0;
for(i=0;i
for(j=0;j
if (i==j) s=s+a[i][j];
cout
31
Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти сумму элементов лежащих на главной диагонали.
Из каждой строки берем элемент, у которого номер строки совпадает с номером столбца
int s=0;
for(i=0;i
cout
32
Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти количество отрицательных элементов лежащих на главной диагонали.
Отрицательные числа лежащие на главной диагонали
int k=0;
for(i=0;i
for(j=0;j
if (a[i][j]
cout
max & i==j) max=a[i][j]; cout" width="640"
33
Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти максимальный элемент лежащий на главной диагонали.
int max=a[1][1];
for(i=0;i
for(j=0;j
if (a[i][j]max & i==j) max=a[i][j];
cout
34
1. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10], выяснить что больше сумма элементов лежащих над главной диагональю или под главной диагональю.
Решение
2. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10], все элементы большие среднего арифметического элементов массива, заменить на 0. Массив повторно вывести на экран.
Решение
3. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти сколько раз в массиве встречается максимальное по величине число.
Решение
4. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10]. Найти сумму элементов. И если она отрицательная, заменить все элементы массива на противоположные по знаку, если положительная или 0, удвоить каждый элемент массива. Массив повторно вывести на экран.
Решение
35
Работа со строками и столбцами двумерного массива по отдельности.
max) max=a[i][j]; coutln } Ищем больший элемент Выводим наибольший в строке" width="640"
35
Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти максимальный элемент в каждой строке матрицы.
Предположим, что наибольший элемент стоит первым в каждой строке
Перебираем строки
for(i=0;i
Движемся по i-ой строке
{
int max=a[i][1];
for(j=0;j
if (a[i][j]max) max=a[i][j];
coutln
}
Ищем больший элемент
Выводим наибольший в строке
max) max=a[i][j]; coutln } Выводим наибольший в столбце" width="640"
36
Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти максимальный элемент в каждом столбце матрицы.
Предположим, что наибольший элемент стоит первым в каждом столбце
Перебираем столбцы
Движемся по столбцу вниз и ищем максимальный
for(j=0;j
{
int max=a[1][j];
for(i=0;i
if (a[i][j]max) max=a[i][j];
coutln
}
Выводим наибольший в столбце
37
1. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти строку в которой сумма элементов наибольшая
Решение
2. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10]. В каждой строке этого массива найти количество элементов, меньших среднего арифметического всех элементов этой строки.
Решение
3. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти максимальный элемент среди минимальных элементов ее строк.
Решение
38
Вставка и удаление столбцов и строк.
38
Дополнительный столбик
Вставка столбца
39
Лишний столбик
Удаление столбца
40
Нумерация: 0 1 2 3 4
«Нормальный»: 1 2 3 4 5
человек считает столбцы
k; for(i=0;i { for(j=n;j=k;j=j-1) a[i][j]=a[i][j-1]; a[i][k]=0; } for(i=0;i { for(j=0;j coutln; } Перебираем столбцы, с последнего до k-го Повторно выводим массив на экран" width="640"
41
Дана матрица размером NxN. (Где N вводится с клавиатуры. Nпосле столбца с номером k. (k вводится с клавиатуры).
Перебираем строки
Текущий элемент заменяем элементом слева
Когда элементы сдвинуты, на k-е место ставим 0
cout
cin k;
for(i=0;i
{
for(j=n;j=k;j=j-1) a[i][j]=a[i][j-1];
a[i][k]=0;
}
for(i=0;i
{
for(j=0;j
coutln;
}
Перебираем столбцы, с последнего до k-го
Повторно выводим массив на экран
k; for(i=0;i { for(j=n; jk-1 ;j=j-1) a[i][j]=a[i][j-1]; a[i][ k-1 ]=0; } for(i=0;i { for(j=0;j coutln; }" width="640"
42
Дана матрица размером NxN. (Где N вводится с клавиатуры. Nвместо столбца с номером k. (k вводится с клавиатуры).
cout
cin k;
for(i=0;i
{
for(j=n; jk-1 ;j=j-1) a[i][j]=a[i][j-1];
a[i][ k-1 ]=0;
}
for(i=0;i
{
for(j=0;j
coutln;
}
k; for(j=0;j { for(i=n;i=k;i=i-1) a[i][j]=a[i-1][j]; a[k][j]=0; } for(i=0;i { for(j=0;j coutln; } Перебираем строки с последней до k-ой Заменяем элемент в k-ой строке на 0" width="640"
43
Дана матрица размером NxN. (Где N вводится с клавиатуры. N
Перебираем столбцы
Заменяем текущий элемент, на стоящий над ним
cout
cin k;
for(j=0;j
{
for(i=n;i=k;i=i-1) a[i][j]=a[i-1][j];
a[k][j]=0;
}
for(i=0;i
{
for(j=0;j
coutln;
}
Перебираем строки с последней до k-ой
Заменяем элемент в k-ой строке на 0
k; for(i=0;i { for(j=k-1;j } for(i=0;i { for(j=0;j coutln; } Перебираем столбцы" width="640"
44
Дана матрица размером NxN. (Где N вводится с клавиатуры. N
Перебираем строки
Заменяем текущий элемент на стоящий справа
cout
cin k;
for(i=0;i
{
for(j=k-1;j
}
for(i=0;i
{
for(j=0;j
coutln;
}
Перебираем столбцы
45
1. Заполнить двумерный массив N x N случайными числами из интервала [-10; 10], найти максимальный элемент и вставить после столбца, в котором стоит максимальный элемент, столбец из нулей.
Решение
2. Заполнить двумерный массив N x N случайными числами из интервала [-10; 10], найти максимальный элемент в массиве и удалить строку, в которой находится этот элемент.
Решение
46
Заполнение числового массива с клавиатуры. Математические операции с матрицами.
46
Заполнить двумерный массив
N x N (Где N
n; for(i=0;i { for(j=0;j { cout cin a[i][j]; } } for(i=0;i { for(j=0;j coutln; } } Заполняем построчно, с комментариями Выводим в виде таблицы" width="640"
47
Программа
{
int a[10][10];
int i,j,n,k;
cout n;
for(i=0;i
{
for(j=0;j
{
cout
cin a[i][j];
}
}
for(i=0;i
{
for(j=0;j
coutln;
}
}
Заполняем построчно, с комментариями
Выводим в виде таблицы
48
Цикл отвечающий за перебор строк. (Внешний цикл)
i , 0, N-1
j , 0, N-1
Ввод a i , j
Цикл отвечающий за перебор ячеек в каждой строке. (Внутренний цикл)
49
Произведением матрицы A на ненулевое число λ называется матрица B = λ A того же порядка, полученная из исходной умножением на заданное число всех ее элементов:
Заполнить матрицу N x М (Где N,М λ. Результат умножения повторно вывести на экран.
n; cout m; cout d; for(i=0;i { for(j=0;j { cout cin a[i][j]; } }" width="640"
50
Заполняем матрицу построчно
int a[10][10],b[10][10];
int i,j,n,m,d;
cout n;
cout m;
cout d;
for(i=0;i
{
for(j=0;j
{
cout
cin a[i][j];
}
}
51
coutln
for(i=0;i
{
for(j=0;j ]:4 ;
coutln;
}
coutln
for(i=0;i
{
for(j=0;j
{
b[i][j]=d*a[i][j]
cout
}
coutln;
}
Умножаем каждый элемент на число, и повторно выводим на экран
Выводим в виде таблицы
52
Суммой матриц А и В одного размера называется матрица С=А + В такого же размера, получаемая из исходных путем сложения соответствующих элементов:
Заполнить матрицу А размером N x М и матрицу В размером N x М с клавиатуры (где N,М . Результат повторно вывести на экран.
53
coutln
for(i=0;i
{
for(j=0;j
{
c[i][j]=a[i][j]+b[i][j];
cout
}
coutln;
}
Находим сумму матриц и выводим результат на экран.
54
Произведением матрицы A m×n на матрицу B n×k называется матрица C m×k такая, что элемент матрицы C , стоящий в i -ой строке и j -ом столбце, т.е. элемент C ij , равен сумме произведений элементов i -ой строки матрицы на соответствующие элементы j -ого столбца матрицы .
Замечание: Умножать матрицы можно тогда и только тогда, когда количество столбцов первой матрицы равно количеству строк второй матрицы.
55
k
m
k
n
×
=
n
m
56
7 3 2 2 3 2 29 50
2 4 6 1 * 2 6 = 20 57
1 1 4 5 1 4 9 49
0 5
7∙3+3∙2+2∙1+2∙0 = 21+6+2+0 = 29
7∙2+3∙6+2∙4+2∙5 = 14+18+8+10 = 50
2∙3+4∙2+6∙1+1∙0 = 6+8+6+0 = 20
2∙2+4∙6+6∙4+1∙5 = 4+24+24+5 = 57
1∙3+1∙2+4∙1+5∙0 = 3+2+4+0 = 9
1∙2+1∙6+4∙4+5∙5 = 2+6+16+25 = 49
57
Перебираем строки массива который получится в результате умножения
for(i=0;i
{
for(j=0;j
{
s=0;
for (l=0;l
s=s+a[i][l]*b[l][j];
c[i][j]=s;
}
}
for(i=0;i
{
for(j=0;j
coutln;
}
Перебираем столбцы массива который получится в результате умножения
Перебираем столбцы первого массива и строки второго
Сумму записываем в новый массив
Находим сумму произведений…
Результат выводим на экран
58
Транспонирование матрицы - это операция над матрицей, когда ее строки становятся столбцами с теми же номерами.
59
Строки матрицы А становятся столбцами матрицы В
for(i=0;i
for(j=0;j
b[j][i] = a[i][j];
coutln
for(i=0;i
{
for(j=0;j
coutln;
}
Количество строк и столбцов поменялись местами
60
Заполнить матрицы А, В и С размером 4 x 4 с клавиатуры, и вычислить матрицу:
W=α(B+βC)(αC- βA)-(A+B+C)B
Где α и β - числа.
Результат вывести на экран.
28
Список литературы и интернет источников
- Система «Исполнители 2.5» и методические рекомендации к ней. – Автор: Поляков К.Ю. http://kpolyakov.spb.ru/school/robots/methodic.htm
- В.В. Подбельский, С.С.Фомин. Программирование на языке Си. М .: ФиС, 1999, 600 с.
- Х.М.Дейтел., П.Дж.Дейтел. Как программировать на Си++. М .: ЗАО БИНОМ, 1999, 1000 с. (первые 600 страниц - изложение обычного Си, наиболее подходят для начинающих).
- Белоусов И. В. Матрицы и определители. Учебное пособие по линейной алгебре. Кишинев, 2006.
j) s=s+a[i][j]; if (i } coutln coutln if (ss1) cout if (s if (s==s1) cout Вернуться к условию задачи" width="640"
Весь массив 1+
int s=0,s1=0;
for(i=0;i
for(j=0;j
{
if (ij) s=s+a[i][j];
if (i
}
coutln
coutln
if (ss1) cout
if (s
if (s==s1) cout
Вернуться к условию задачи
sr) a[i][j]=0; cout } coutln; } Вернуться к условию задачи" width="640"
Весь массив 2+
int s=0;
for(i=0;i
for(j=0;j
float sr=s/(n*n);
coutln
for(i=0;i
{
for(j=0;j
{
if (a[i][j]sr) a[i][j]=0;
cout
}
coutln;
}
Вернуться к условию задачи
max) max=a[i][j];; } coutln int k=0; for(i=0;i for(j=0;j { if (a[i][j]==max) k=k+1; } coutln Вернуться к условию задачи" width="640"
Весь массив 3+
int max=a[1][1];
for(i=0;i
for(j=0;j
{
if (a[i][j]max) max=a[i][j];;
}
coutln
int k=0;
for(i=0;i
for(j=0;j
{
if (a[i][j]==max) k=k+1;
}
coutln
Вернуться к условию задачи
=0) a[i][j]= 2 * a[i][j]; cout } coutln; } Вернуться к условию задачи" width="640"
Весь массив 4+
int s=0;
for(i=0;i
for(j=0;j
coutln
for(i=0;i
{
for(j=0;j
{
if (s
if (s=0) a[i][j]= 2 * a[i][j];
cout
}
coutln;
}
Вернуться к условию задачи
max) {max=s;f=i}; } coutln Вернуться к условию задачи" width="640"
По строкам 5+
int s,f, max=-100;
for(i=0;i
{
s=0;
for(j=0;j
coutln
if(smax) {max=s;f=i};
}
coutln
Вернуться к условию задачи
По строкам 6+
int s,k,d;
for(i=0;i
{
s=0;
for(j=0;j
d=s/n;
coutln
k=0;
for(j=0;j
coutln
}
Вернуться к условию задачи
max)max=min; } coutln Вернуться к условию задачи" width="640"
По строкам 7+
int s,max=-10,min;
for(i=0;i
{
min=10;
for(j=0;j
if (a[i][j]
coutln
if (minmax)max=min;
}
coutln
Вернуться к условию задачи
max) {max=a[i][j];k=j}; coutln for(i=0;i { for(j=n;j=k+1;j=j-1) a[i][j]=a[i][j-1]; a[i][k+1]=0; } for(i=0;i { for(j=0;j coutln; } Вернуться к условию задачи Почему возникает такая ситуация и как ее исправить? Дополнительное задание" width="640"
Вставка удаление 8+
int max=a[0][0], k=0;
for(i=0;i
for(j=0;j
if (a[i][j]max) {max=a[i][j];k=j};
coutln
for(i=0;i
{
for(j=n;j=k+1;j=j-1) a[i][j]=a[i][j-1];
a[i][k+1]=0;
}
for(i=0;i
{
for(j=0;j
coutln;
}
Вернуться к условию задачи
Почему возникает такая ситуация и как ее исправить?
Дополнительное задание
max) {max=a[i][j];k=i}; coutln for(j=0;j { for(i=k;i } for(i=0;i { for(j=0;j coutln; } Вернуться к условию задачи Почему возникает такая ситуация и как ее исправить? Дополнительное задание" width="640"
Вставка удаление 9+
int max=a[0][0], k=0;
for(i=0;i
for(j=0;j
if (a[i][j]max) {max=a[i][j];k=i};
coutln
for(j=0;j
{
for(i=k;i
}
for(i=0;i
{
for(j=0;j
coutln;
}
Вернуться к условию задачи
Почему возникает такая ситуация и как ее исправить?
Дополнительное задание