Заменить нулем все элементы столбца матрицы до максимального элемента - C (СИ)
Формулировка задачи:
Написать программу, над элементами двумерных массивов целых чисел. Действия оформить как отдельные функции.
"Первое действие: Заменить нулем все элементы столбца до максимального элемента. Второе действие: Вывести на экран количество положительных элементов в столбце. Промежуточная функция: Выполнить действия для столбцов, у которых первый элемент имеет четное значение."
Решение задачи: «Заменить нулем все элементы столбца матрицы до максимального элемента»
textual
Листинг программы
#include <stdio.h> #define COL 6 #define ROW 4 void novate(int *start, int col, int row) { int i, j; int max; for(i=0; i<row; i++) { max = *(start+i); for(j=1; j<col; j++) if(*(start+(i)+(j*row))>max) max = *(start+(i)+(j*row)); printf("max = %i \n", max); for(j=0; j<col; j++) if(*(start+(i)+(j*row))<max) *(start+(i)+(j*row)) = 0; else j=col; } } int main (void) { int array[COL][ROW] = { 3, 4, 5, 7, 6, 4, 6, 2, 8, 5, 3, 6, 5, 6, 7, 3, 4, 1, 3, 1, 6, 9, 4, 4 }; int i, j; for(i=0; i<COL; i++) { for(j=0; j<ROW; j++) printf("%i, ", array[i][j]); putchar('\n'); } novate(&array[0][0], COL, ROW); for(i=0; i<COL; i++) { for(j=0; j<ROW; j++) printf("%i, ", array[i][j]); putchar('\n'); } return 0; }
Объяснение кода листинга программы
В этом коде задача замены нулем всех элементов столбца матрицы до максимального элемента. Список действий:
- В функции
novate
инициализируются переменные: —i
иj
— для циклов; —max
— для хранения максимального элемента; - В первом цикле перебираются строки матрицы:
— В каждой строке ищется максимальный элемент и сохраняется в переменной
max
; — Во втором цикле перебираются столбцы этой строки, и если элемент меньше максимального, то он заменяется на ноль. - Во втором цикле перебираются столбцы матрицы и выводится на экран.
- В функции
main
матрица инициализируется значениями. - Первый цикл выводит на экран значения матрицы.
- Вызывается функция
novate
с передачей адреса первого элемента матрицы, количества столбцов и строк матрицы. - Второй цикл выводит на экран значения матрицы после применения функции
novate
. - Программа возвращает 0, заканчивая свою работу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д