Заменить нулем все элементы столбца матрицы до максимального элемента - 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;
}

Объяснение кода листинга программы

В этом коде задача замены нулем всех элементов столбца матрицы до максимального элемента. Список действий:

  1. В функции novate инициализируются переменные: — i и j — для циклов; — max — для хранения максимального элемента;
  2. В первом цикле перебираются строки матрицы: — В каждой строке ищется максимальный элемент и сохраняется в переменной max; — Во втором цикле перебираются столбцы этой строки, и если элемент меньше максимального, то он заменяется на ноль.
  3. Во втором цикле перебираются столбцы матрицы и выводится на экран.
  4. В функции main матрица инициализируется значениями.
  5. Первый цикл выводит на экран значения матрицы.
  6. Вызывается функция novate с передачей адреса первого элемента матрицы, количества столбцов и строк матрицы.
  7. Второй цикл выводит на экран значения матрицы после применения функции novate.
  8. Программа возвращает 0, заканчивая свою работу.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.286 из 5
Похожие ответы