Задачи для решения на тему «двумерные массивы»
Вариант 1. Дана целочисленная прямоугольная матрица. Определить: 1 количество столбцов, не содержащих ни одного положительного элемента; 2 сумму столбцов, содержащих хотя бы один нулевой элемент. Вариант 2. Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента. Переставляя строки заданной матрицы, расположить их в соответствии с ростом суммы ее положительных четных элементов. Вариант 3. Дана целочисленная прямоугольная матрица. Определить: 1 количество столбцов, содержащих хотя бы один нулевой элемент; 2 номер строки, в которой находится самая длинная серия одинаковых элементов. Вариант 4. Дана целочисленная квадратная матрица. Определить: 1 произведение элементов в тех строках, которые не содержат отрицательных элементов; 2 максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. Вариант 5. Дана целочисленная квадратная матрица. Определить: 1 сумму элементов в тех столбцах, которые не содержат отрицательных элементов; 2 минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. Вариант 6. Дана целочисленная прямоугольная матрица. Определить: 1 сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент; 2 номера строк и столбцов всех седловых точек матрицы. Примечание. Матрица А имеет седловую точку Аs, если Аij является минимальным элементом в i -й строке и максимальным в j -м столбце. Вариант 7. Дана целочисленная прямоугольная матрица размером 8 на 8 1 найти такие k, что k -я строка матрицы совпадает с k -м столбцом; 2 найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.
Вариант 8. Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик. Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент. Вариант 9. Соседями элемента Аij в матрице назовем элементы Аkl с Вариант 10. Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10. Найти сумму модулей элементов, расположенных выше главной диагонали. Вариант 11. Коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы. С помощью допустимых преобразований привести систему к треугольному виду. Найти количество строк, среднее арифметическое элементов которых меньше заданной величины. Вариант 12. Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями. Найти номер первой из строк, содержащих хотя бы один положительный элемент. Вариант 13. Осуществить циклический сдвиг элементов прямоугольной матрицы на n элементов вправо или вниз (в зависимости от введенного режима), n может быть больше количества элементов в строке или столбце. Вариант 14. Осуществить циклический сдвиг элементов квадратной матрицы размерности М × N вправо на k элементов таким образом: элементы 1 -й строки сдвигаются в последний столбец сверху вниз, из него = в последнюю строку справа налево, из нее - в первый столбец снизу вверх, из него - в первую строку; для остальных элементов - аналогично.
Вариант 15. Дана целочисленная прямоугольная матрица. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент. Переставляя строки заданной матрицы, расположить их в соответствии с убыванием суммы ее отрицательных четных элементов. Вариант 16. Дана целочисленная прямоугольная матрица. Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке. Найти номер первого из столбцов, не содержащих ни одного отрицательного элемента. Вариант 17. Путем перестановки элементов квадратной вещественной матрицы добиться того, чтобы ее максимальный элемент находился в левом верхнем углу, следующий по величине - в позиции (2,2), следующий по величине - в позиции (3,3) и т. д., заполнив таким образом всю главную диагональ. Найти номер первой из строк, не содержащих ни одного положительного элемента. Вариант 18. Дана целочисленная прямоугольная матрица. Определить: 1 количество строк, содержащих хотя бы один нулевой элемент; 2 номер столбца, в котором находится самая длинная серия одинаковых элементов. Вариант 19. Дана целочисленная квадратная матрица. Определить: 1 сумму элементов в тех строках, которые не содержат отрицательных элементов; 2 минимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. Вариант 20. Дана целочисленная прямоугольная матрица. Определить: 1 количество отрицательных элементов в тех строках, которые содержат хотя бы один нулевой элемент; 2 номера строк и столбцов всех седловых точек матрицы. Примечание. Матрица А имеет седловую точку Аs, если Аij является минимальным элементом в i -й строке и максимальным в j -м столбце.
7.4 Строки
Строка представляет собой массив символов, заканчивающийся нуль-символом. Нуль-символ - это символ с кодом, равным 0, что записывается в виде управляющей последовательности '\0'. По положению нуль-символа определяется фактическая длина строки. Строку можно инициализировать строковым литералом:
char str[10] = "Vasia"; // выделено 10 элементов с номерами от 0 до 9 // первые элементы - 'V', 'a', 's', 'i', 'а', '\0' В этом примере под строку выделяется 10 байт, 5 из которых занято под символы строки, а шестой - под нуль-символ. Если строка при определении инициализируется, ее размерность можно опускать (компилятор сам выделит соответствующее количество байт): char str[] = "Vasia"; // выделено и заполнено 6 байт Оператор char *str = "Vasia" создает не строковую переменную, а указатель на строковую константу, изменить которую невозможно (к примеру, оператор str[1]='o' не допускается). Знак равенства перед строковым литералом означает инициализацию, а не присваивание. Операция присваивания одной строки другой не определена (поскольку строка является массивом) и может выполняться с помощью цикла или функций стандартной библиотеки. Пример. Программа запрашивает пароль не более трех раз. #include <stdio.h> #include <string.h> int main(){ char s[80], passw[] = "kuku"; // passw - эталонный пароль. // Можно описать как *passw = "kuku"; int i, k = 0; for (i = 0;!k && i<3; i++){ printf("\nвведите пароль:\n"); gets(s); // функция ввода строки if (strstr(s,passw)) k = 1; // функция сравнения строк } if (k) printf("\nпароль принят"); else printf("\nпароль не принят"); return 0; } Распространенные ошибки при работе со строками - отсутствие нуль-символа и выход указателя при просмотре строки за ее пределы. При работе со строками удобно пользоваться функциями стандартной библиотеки C или определенным в С++ классом string, который обеспечивает индексацию, присваивание, сравнение, добавление, объединение строк и поиск подстрок, а также преобразование из С-строк, то есть массивов типа char, в string, и наоборот.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|