Дан двухмерный. Дан двумерный массив вещественных чисел

Пример 3

Дан целочисленный двумерный массив, размерности n х m, найти наименьший элемент массива и номер строки, в которой он находится.

Блок-схема:
Программный код:
Var a: array of integer;
i, j, m, n, min, k: integer;
Begin
Write(‘ сколько строк ?’); Readln(n);
Write(‘ сколько столбцов ?’); Readln(m);
For i:=1 to n do
For j:=1 to m do
begin
write(‘a[‘,i,’,’,j,’]=’); readln (a); {ввод двумерного массива}
end;
min:=a; {минимальный элемент}
k:=1; {номер строки}
For i:=1 to n do
For j:=1 to m do
If a< min then
begin
min:=a; k:=i; {поиск минимального и "запоминание" номера строки}
end;
Writeln(‘наименьшее число ‘,min,’ находится в ‘, k , ‘ строке’);
End.

Задачи

  1. . Найти сумму и произведение всех элементов массива.
  2. Дан целочисленный двумерный массив, размерности n х m . Найти сумму и произведение четных элементов.
  3. Дан целочисленный двумерный массив, размерности n х m . Найти сумму и произведение элементов, кратных 3 и 5.
  4. Дан целочисленный двумерный массив, размерности n х m . Найти количество отрицательных элементов, больше -9.
  5. Дан целочисленный двумерный массив, размерности n х m .
  6. Дан целочисленный двумерный массив, размерности n х m
  7. Дан целочисленный двумерный массив, размерности n х m
  8. Дан целочисленный двумерный массив, размерности n х m . Найти среднее арифметическое всех элементов массива.
  9. Дан целочисленный двумерный массив, размерности n х m . Выяснить, какое число встречается в какой строке раньше - положительное или отрицательное.
  10. Дан целочисленный двумерный массив, размерности n х m . Выяснить, в какой строке последовательность является возрастающей или убывающей.
  11. Дан целочисленный двумерный массив, размерности n х m . Вывести его элементы, индексы которых являются степенями двойки (1, 2, 4, 8, 16, ...).
  12. Дан целочисленный двумерный массив, размерности n х m . Найти количество элементов кратных 7.
  13. Дан целочисленный двумерный массив, размерности n х m . Вывести на экран элементы, которые являются квадратами какого-либо числа.
  14. Дан целочисленный двумерный массив, размерности n х m . Найти номера нечетных элементов, стоящих на четных местах.
  15. Дан целочисленный двумерный массив, размерности n х m . Найти максимум и минимум. Поменять их местами.
  16. Дан целочисленный двумерный массив, размерности n х m . Заменить все элементы на их квадраты.
  17. Дан целочисленный двумерный массив, размерности n х m . Заменить все элементы на их противоположные значения.
  18. Дан целочисленный двумерный массив, размерности n х m . Поменять местами первый и последний элементы.
  19. Дан целочисленный двумерный массив, размерности n х m . Сформировать новый массив, состоящий из противоположных соответствующих элементов.
  20. Дан целочисленный двумерный массив, размерности n х m . Вывести на экран те элементы, у которых остаток от деления на m равен k.
  21. Вводятся результаты контрольной работы 10 учащихся. Определите число не удовлетворительных, удовлетворительных, хороших, отличных оценок. Вывести среднюю оценку, полученную учащимися за контрольную работу.
  22. Ввести оценки N учеников по K предметам. Определить и вывести на экран количество учеников, не получивших ни одной "5".
  23. В группе учится N студентов, студенты получили по четыре отметки за экзамен. Определить количество неуспевающих студентов и средний балл группы.
  24. Дан целочисленный двумерный массив, размерности n х m . Вычислить сумму чисел, порядковые номера которых являются числами фибоначчи.
  25. Дан целочисленный двумерный массив, размерности n х m . Сложить соответствующие элементы.

Задачи по двумерным массивам

1) Дан двумерный массив целых чисел. Составить программу:

а) вывода на экран элемента, расположенного в правом верхнем углу массива;

б) вывода на экран элемента, расположенного в левом нижнем углу массива;

в) вывода на экран любого элемента второй строки массива;

г) вывода на экран любого элемента третьего столбца массива;

д) вывода на экран любого элемента массива.

2) Дан двухмерный целочисленный массив. Поменять местами:

а) элементы, расположенные в верхнем правом и нижнем левом углах;

б) элементы, расположенные в нижнем правом и верхнем левом углах;

3) Известен номер строки, на которой расположен элемент главной диагонали двумерного массива целых чисел. Вывести на экран значение этого элемента.

4) Вывести на экран (в одну строку) :

а) все элементы главной диагонали массива

б) все элементы главной диагонали массива, начиная с элемента, расположенного в правом нижнем углу.

5) Заменить значения всех элементов главной диагонали целочисленного массива на нулевые.

6) Заменить значения всех элементов побочной диагонали целочисленного массива на значения, равные 100.

7) Определить:

а) сумму элементов главной диагонали массива;

б) сумму элементов побочной диагонали массива;

в) среднее арифметическое элементов главной диагонали массива;

г) среднее арифметическое элементов побочной диагонали массива;

д) минимальный (максимальный) элемент главной диагонали массива;

е) максимальный (минимальный) элемент побочной диагонали вещественного массива;

ж) координаты первого максимального элемента главной диагонали;

з) координаты первого минимального элемента главной диагонали.

а) вывести на экран все элементы пятой строки массива;

б) вывести на экран все элементы третьей строки массива, начиная с последнего элемента этой строки;

в) вывести на экран все элементы s-го столбца массива;

г) заменить значения всех элементов второй строки массива на число 5;

д) заменить значения всех элементов пятого столбца на число 10.

е) определить максимальный (минимальный) элемент третьего столбца;

9) Дан двухмерный массив целых чисел. Составить программу:

а) расчета произведения двух любых элементов любой строки массива

б) сумму всех элементов любой строки массива;

10) Дан двумерный массив целых чисел. Определить:

а) а) в каком столбце массива сумма элементов меньше, в первом или в последнем;

б) б) в какой строке произведение элементов больше, во второй или в третьей.

11) Дан двухмерный целочисленный массив размером 10 х 10. Вывести на экран часть массива:

а) расположенную выше главной диагонали;



б) расположенную ниже главной диагонали;

в) расположенную выше побочной диагонали;

г) расположенную ниже побочной диагонали;

12) Дан двумерный массив целых чисел:

а) в каждом его столбце найти максимальный (минимальный) элемент;

б) координаты максимального (минимального) элемента;

в) сумму нечетных элементов в каждом столбце (строке);

г) количество элементов кратных А или В.

д) найти строку с максимальной суммой элементов;

е) найти столбец с минимальной суммой элементов.

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

Варианты заданий:

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11. Найти произведение элементов, которые находятся выше главной диагонали. Заменить найденным числом все нечетные элементы.

12. Найти сумму элементов, которые находятся на нечетных позициях (сумма индексов (i+j) для Х ij – нечетное число). Заменить найденным числом все отрицательные элементы.

13. Найти произведение всех элементов, которые находятся на главной диагонали. Заменить найденным числом все элементы пятой строки и второго столбца.

14. Найти среднее арифметическое элементов на главной диагонали и среднее арифметическое на побочной. Поменять местами элементы на диагоналях.

15. Найти среднее арифметическое положительных элементов, которые находятся выше главной диагонали. Заменить найденным числом все отрицательные элементы.

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

17. Найти произведение элементов i-строки и j-столбца (i, j- предварительно вводить с клавиатуры). Заменить найденным числом все элементы ниже побочной диагонали.

18. Найти произведение элементов, которые находятся на четных позициях (сумма индексов (i+j) для Х ij – нечетное число). Заменить найденным числом все элементы на главной диагонали.

19. Найти среднее арифметическое нечетных элементов. Заменить найденным числом все элементы побочной диагонали.

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

21. Найти произведение элементов, которые находятся выше главной диагонали. Заменить найденным числом все нечетные элементы.

22. Найти сумму элементов, которые находятся на нечетных позициях (сумма индексов (i+j) для Х ij – нечетное число). Заменить найденным числом все отрицательные элементы.

23. Найти произведение всех элементов, которые находятся на главной диагонали. Заменить найденным числом все элементы пятой строки и второго столбца.

24. Найти среднее арифметическое элементов на главной диагонали и среднее арифметическое на побочной. Поменять местами элементы на диагоналях.

25. Найти среднее арифметическое положительных элементов, которые находятся выше главной диагонали. Заменить найденным числом все отрицательные элементы.

Например: Найти среднее арифметическое элементов на главной диагонали

После паузы:

Контрольные вопросы

1. Что такое текстовый режим, и чем он отличается от обычного?

2. Что такое окно?

3. Как переместить курсор в заданные координаты окна?

4. Как изменить цвет шрифта/фона?

Введение

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

Материал лекций изложен в трех главах. В первой главе даются основные понятия теории алгебры логики, рассматриваются различные формы представления булевых функций. Вторая глава посвящена вопросам минимизации представлений булевых функций, что является основой абстрактного синтеза дискретных устройств. Третья глава содержит сведения о способах реализации булевых функций на основе переключательных схем, что является основой структурного синтеза дискретных устройств.

При написании конспекта лекций использовалась следующая литература: для раздела 1.1 – ; для раздела 1.2 – ; для раздела 1.3 – ; для раздела 2.1 – ; для раздела 2.2 – ; для разделов 3.1, 3.2 – .

Подоспела очередная порция задач по информатике для школьников. На этот раз рассмотрим работу с двухмерными массивами на C++. Эти задачи достаточно интересные. И большая часть из них мне понравилась.

Задача №1

Найдите индексы первого вхождения максимального элемента.
Формат входных данных
Программа получает на вход размеры массива n и m, затем n строк по m чисел в каждой. n и m не превышают 100.
Формат выходных данных
Выведите два числа: номер строки и номер столбца, в которых стоит наибольший элемент в двумерном массиве. Если таких элементов несколько, то выводится тот, у которого меньше номер строки, а если номера строк равны то тот, у которого меньше номер столбца.

Sample Input: 3 4 0 3 2 4 2 3 5 5 5 1 2 3 Sample Output: 1 2

#include using namespace std; int main() { int n, m; cin >> n >> m; int a; // чтение for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> a[i][j]; } } int max = a, max_i = 0, max_j = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (a[i][j] > max) { max = a[i][j]; max_i = i; max_j = j; } } } cout << max_i << " " << max_j; return 0; }

Задача №2

Дано нечетное число n, не превосходящее 15. Создайте двумерный массив из n×n элементов, заполнив его символами "." (каждый элемент массива является строкой из одного символа). Затем заполните символами "*" среднюю строку массива, средний столбец массива, главную диагональ и побочную диагональ. В результате "*" в массиве должны образовывать изображение звездочки. Выведите полученный массив на экран, разделяя элементы массива пробелами.

Sample Input: 5 Sample Output: * . * . * . * * * . * * * * * . * * * . * . * . *

#include using namespace std; int main() { int n; cin >> < n; i++) { for (int j = 0; j < n; j++) { if (i == j || i == n - 1 - j || i == n / 2 || j == n / 2) a[i][j] = 1; else a[i][j] = 0; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (a[i][j] == 0) cout << "." << " "; else cout << "*" << " "; } cout << endl; } return 0; }

Задача №3

Дано число n, не превышающее 100. Создайте массив размером n×n и заполните его по следующему правилу. На главной диагонали должны быть записаны числа 0. На двух диагоналях, прилегающих к главной, числа 1. На следующих двух диагоналях числа 2, и т.д.

Sample Input: 5 Sample Output: 0 1 2 3 4 1 0 1 2 3 2 1 0 1 2 3 2 1 0 1 4 3 2 1 0

#include #include using namespace std; int main() { int n; cin >> n; int a; // обработка for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { a[i][j] = (int) abs(i - j); } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << a[i][j] << " "; } cout << endl; } return 0; }

Задача №4

Дан двумерный массив и два числа: i и j. Поменяйте в массиве столбцы с номерами i и j.
Формат входных данных
Программа получает на вход размеры массива n и m, не превосходящие 100, затем элементы массива, затем числа i и j.
Формат выходных данных
Выведите результат.

Sample Input: 0 1 Sample Output: 12 11 13 14 22 21 23 24 32 31 33 34

#include #include using namespace std; int main() { int n, m, x, y, temp; cin >> n >> < n; i++) { for (int j = 0; j < m; j++) { cin >> a[i][j]; } } cin >> x >> y; // обработка for (int i = 0; i < n; i++) { temp = a[i][x]; a[i][x] = a[i][y]; a[i][y] = temp; } // вывод for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cout << a[i][j] << " "; } cout << endl; } return 0; }

Задача №5

Дано число n, не превосходящее 10, и массив размером n × n. Проверьте, является ли этот массив симметричным относительно главной диагонали. Выведите слово “YES”, если массив симметричный, и слово “NO” в противном случае.

Sample Input: 3 0 1 2 1 2 3 2 3 4 Sample Output: YES

#include #include using namespace std; int main() { int n; bool symmetric; cin >> n; int a; // заполнение for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> a[i][j]; } } // обработка symmetric = true; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (a[i][j] != a[j][i]) symmetric = false; } } // вывод if (symmetric) cout << "YES"; else cout << "NO"; return 0; }

Задача №6

Дан квадратный двумерный массив размером n × n и число k. Выведите элементы k-й по счету диагонали ниже главной диагонали (т.е. если k = 1, то нужно вывести элементы первой диагонали, лежащей ниже главной, если k = 2, то второй диагонали и т.д.).
Значение k может быть отрицательным, например, если k = −1, то нужно вывести значение первой диагонали лежащей выше главной. Если k = 0, то нужно вывести элементы главной диагонали.
Программа получает на вход число n, не превосходящие 10, затем массив размером n × n, затем число k.

Sample Input 1: 4 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 1 Sample Output 1: 5 1 6 Sample Input 2: 4 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 -2 Sample Output 2: 3 8

#include using namespace std; int main() { int n, k; cin >> n; int a[n][n]; // заполнение for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> a[i][j]; } } cin >> k; // обработка и вывод for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i - j - k == 0) cout << a[i][j] << " "; } } return 0; }

Задача №7

Дан двумерный массив размером n×m (n и m не превосходят 1000). Симметричный ему относительно главной диагонали массив называется транспонированным к данному. Он имеет размеры m×n: строки исходного массива становятся столбцами транспонированного, столбцы исходного массива становятся строками транспонированного.
Для данного массива постройте транспонированный массив и выведите его на экран.

Sample Input: 3 4 11 12 13 14 21 22 23 24 31 32 33 34 Sample Output: 11 21 31 12 22 32 13 23 33 14 24 34

#include using namespace std; int main() { int n, m, x, y, temp; cin >> n >> < n; i++) { for (int j = 0; j < m; j++) { cin >> < n; i++) { for (int j = 0; j < m; j++) { b[j][i] = a[i][j]; } } // вывод for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { cout << b[i][j] << " "; } cout << endl; } return 0; }

Задача №8

В кинотеатре n рядов по m мест в каждом (n и m не превосходят 20). В двумерном массиве хранится информация о проданных билетах, число 1 означает, что билет на данное место уже продан, число 0 означает, что место свободно. Поступил запрос на продажу k билетов на соседние места в одном ряду. Определите, можно ли выполнить такой запрос.
Формат входных данных
Программа получает на вход числа n и m. Далее идет n строк, содержащих m чисел (0 или 1), разделенных пробелами. Затем дано число k.
Формат выходных данных
Программа должна вывести номер ряда, в котором есть k подряд идущих свободных мест. Если таких рядов несколько, то выведите номер наименьшего подходящего ряда. Если подходящего ряда нет, выведите число 0.

Sample Input: 3 4 0 1 0 1 1 0 0 1 1 1 1 1 2 Sample Output: 2

#include using namespace std; int main() { int n, m, k, r = 0; cin >> n >> m; int a[n][m]; // заполнение for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> a[i][j]; } } cin >> k; // обработка for (int i = 0; i < n; i++) { int near_free = 0; for (int j = 0; j < m; j++) { if (a[i][j] == 0) { near_free++; if (near_free == k) { r = i + 1; break; } } else near_free = 0; } if (near_free == k) break; } // вывод cout << r; return 0; }

Задача №9

Дан прямоугольный массив размером n×m. Поверните его на 90 градусов по часовой стрелке, записав результат в новый массив размером m×n.
Формат входных данных
Вводятся два числа n и m, не превосходящие 100, затем массив размером n×m.
Формат выходных данных
Выведите получившийся массив. Числа при выводе разделяйте одним пробелом.

Sample Input: 3 4 11 12 13 14 21 22 23 24 31 32 33 34 Sample Output: 31 21 11 32 22 12 33 23 13 34 24 14

#include using namespace std; int main() { int n, m; cin >> n >> m; int a[n][m]; int b[m][n]; // заполнение for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> a[i][j]; } } // обработка for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { b[j] = a[i][j]; } } // вывод for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { cout << b[i][j] << " "; } cout << endl; } return 0; }

Задача №10

По данным числам n и m заполните двумерный массив размером n×m числами от 1 до n×m “змейкой”, как показано в примере.
Формат входных данных
Вводятся два числа n и m, каждое из которых не превышает 20.
Формат выходных данных

Sample Input: 3 5 Sample Output: 1 2 3 4 5 10 9 8 7 6 11 12 13 14 15

#include using namespace std; int main() { int n, m, c = 0; cin >> n >> m; int a[n][m]; // обработка for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { c++; if (i%2 == 0) a[i][j] = c; else a[i] = c; } } // вывод for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (a[i][j] % 10 == a[i][j]) cout << " "; else if (a[i][j] % 100 == a[i][j]) cout << " "; else if (a[i][j] % 1000 == a[i][j]) cout << " "; cout << a[i][j]; } cout << endl; } return 0; }

Задача №11

По данным числам n и m заполните двумерный массив размером n×m числами от 1 до n×m “диагоналями”, как показано в примере.
Формат входных данных

Формат выходных данных
Выведите полученный массив, отводя на вывод каждого элемента ровно 4 символа.

Sample Input: 3 5 Sample Output: 1 2 4 7 10 3 5 8 11 13 6 9 12 14 15

#include using namespace std; int main() { int n, m, pos = 0, row = 0; cin >> n >> m; int a[n][m]; // обработка int start_row = 0; int number = 1; for (int min_row = 0; min_row < n; min_row++) { if (min_row > 0) start_row = pos - 1; else start_row = 0; for (pos = start_row; pos < m; pos++) { row = min_row; for (int col = pos; col >= 0; col--) { if (row < n) { a = number; number++; row++; } else break; } } } // вывод for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (a[i][j] % 10 == a[i][j]) cout << " "; else if (a[i][j] % 100 == a[i][j]) cout << " "; else if (a[i][j] % 1000 == a[i][j]) cout << " "; cout << a[i][j]; } cout << endl; } return 0; }

Задача №12

Даны числа n и m. Заполните массив размером n × m в шахматном порядке: клетки одного цвета заполнены нулями, а другого цвета - заполнены числами натурального ряда сверху вниз, слева направо. В левом верхнем углу записано число 1.
Формат входных данных
Вводятся два числа n и m, не превышающие 100.
Формат выходных данных
Выведите полученный массив, отводя на вывод каждого элемента ровно 4 символа.

Sample Input: 3 5 Sample Output: 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8

#include using namespace std; int main() { int n, m, sm; cin >> n >> m; int a[n][m]; // обработка int number = 1; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { a[i][j] = 0; } } for (int i = 0; i < n; i++) { if (i % 2 == 1) sm = 1; else sm = 0; for (int j = sm; j < m; j++) { a[i][j] = number; number++; j++; } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (a[i][j] % 10 == a[i][j]) cout << " "; else if (a[i][j] % 100 == a[i][j]) cout << " "; else if (a[i][j] % 1000 == a[i][j]) cout << " "; cout << a[i][j]; } cout << endl; } return 0; }

Задача №13

По данным числам n и m заполните двумерный массив размером n×m числами от 1 до n×m по спирали, выходящей из левого верхнего угла и закрученной по часовой стрелке, как показано в примере.
Формат входных данных
Вводятся два числа n и m, не превышающие 100.
Формат выходных данных
Выведите полученный массив, отводя на вывод каждого элемента ровно 4 символа.

Sample Input: 4 5 Sample Output: 1 2 3 4 5 14 15 16 17 6 13 20 19 18 7 12 11 10 9 8

#include using namespace std; int main() { int n, m; cin >> n >> m; int a; for (int i = 0; i <= n + 1; i++) { for (int j = 0; j <= m + 1; j++) { a[i][j] = -1; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { a[i][j] = 0; } } int num = 0, row = 1, col = 0; while (num < n * m) { while (a == 0) { col++; num++; a = num; } while (a == 0) { row++; num++; a = num; } while (a == 0) { col--; num++; a = num; } while (a == 0) { row--; num++; a = num; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (a[i][j] % 10 == a[i][j]) cout << " "; else if (a[i][j] % 100 == a[i][j]) cout << " "; else if (a[i][j] % 1000 == a[i][j]) cout << " "; cout << a[i][j]; } cout << endl; } return 0; }

0 0

Please enable JavaScript to view the

Лабораторная работа для школ и вузов по решению задач по обработке двумерных массивов на языке C (Си). Перечень задач лабораторной работы (клик по ссылке направляет на решение задачи, если таковое имеется):

Дополнительные задачи:

Работоспособность всех программ проверена в CodeBlocks 16.01 (MinGW, Windows 10). Свои решения нерешённых программ и пожелания по улучшению существующих можете давать в комментариях внизу страницы.

Скачать файл лабораторной и все исходные коды программ в архиве:


Также вы можете заказать решение своих лабораторных работ на языке C++ и многих других:

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

#include #include #include int main() { int *arr; int x, y, i, j, sum = 0, min = 0, minstr = 0; srand(time(NULL)); x = 2 + rand() % 10; y = 2 + rand() % 6; arr = (int*)malloc(x*y*sizeof(int)); printf("Array %d x %d: \n", x, y); for (i = 0; i

№2: Определить координаты элемента, наиболее близкого к среднему значению всех элементов массива.

#include #include #include #include int main() { int *arr; int x, y, i, j, minx = 0, miny = 0; float ssum = 0; srand(time(NULL)); x = 1 + rand() % 10; y = 1 + rand() % 7; arr = (int*)malloc(x*y*sizeof(int)); printf("Array %d x %d: \n", x, y); for (i = 0; i

№9: Дан двумерный массив из четного числа столбцов. Столбцы левой половины массива поменять ме-стами со столбцами правой половины.

#include #include #include int main() { int *arr; int x, y, i, j, d; srand(time(NULL)); x = 1 + rand() % 10; y = 2 * (1 + rand() % 3); arr = (int*)malloc(x*y*sizeof(int)); printf("Array %d x %d: \n", x, y); for (i = 0; i

№14: Для каждой строки двумерного массива выяснить количество элементов, последняя цифра которых равна а.

#include #include #include int main() { int *arr; int x, y, i, j, a, count; srand(time(NULL)); printf("Enter a: "); scanf("%d", &a); x = 1 + rand() % 10; y = 1 + rand() % 7; arr = (int*)malloc(x*y*sizeof(int)); printf("Massiv %d x %d: \n", x, y); for (i = 0; i

№21: Дан двумерный массив b. Рассматривая его как матрицу, транспонировать b.

#include #include #include int main() { int *arr, *arrT, x, y, i, j; srand(time(NULL)); x = 1 + rand() % 7; y = 1 + rand() % 7; arr = (int*)malloc(x*y*sizeof(int)); printf("Matrix %d x %d: \n", x, y); for (i = 0; i

№1 (Доп): Дан двумерный массив. Упорядочить его строки по неубыванию их первых элементов.

#include #include #include int main() { int *arr, x, y, i, j, k, d, max = 0; srand(time(NULL)); x = 1 + rand() % 10; y = 1 + rand() % 7; arr = (int*)malloc(x*y*sizeof(int)); printf("Array %d x %d: \n", x, y); for (i = 0; i *(arr + max*y)) max = j; for (k = 0; k

№2 (Доп): Определить, является ли заданная квадратная матрица ортонормированной, т.е. такой, в которой скалярное произведение каждой пары различных строк равно 0, а скалярное произведение каждой строки на себя равно 1.

#include #include int main() { int *arr; int x, i, j, k, sum = 0; printf("Enter the size of the square matrix: "); scanf("%d", &x); arr = (int*)malloc(x*x*sizeof(int)); printf("Enter the elements of the matrix %d x %d: \n", x, x); for (i = 0; i

№3 (Доп): Дан квадратный двумерный массив. Найти сумму элементов каждой его диагонали, параллельной побочной.

#include #include #include int main() { int *arr; int x, y, i, j, sum; srand(time(NULL)); x = 2 + rand() % 6; arr = (int*)malloc(x*y*sizeof(int)); printf("Array %d x %d: \n", x, x); for (i = 0; i