Наименьшее число в массиве, а так же проверка, является ли оно наименьшее везде - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Привет! Задача: есть числовой массив, нужно найти такой элемент, который является наименьшим в своей строке и в своем столбце. А если такого нет, то вывести "0". В общем, я очень долго пытался сделать что-то близкое. Основной код:
#include "stdio.h" 
 
int main() {
    int q, w, j, i, t=0;
    printf("Vvedite razmer M: ");
    scanf("%d", &q);
    printf("Vvedite razmer N: ");
    scanf("%d", &w);
 
    int **mass;
 
    mass = new int*[q];
    for (i = 0; i < q; i++)
        mass[i] = new int[w];
 
    for (i = 0; i < q; i++)
    for (j = 0; j < w; j++)
    {
 
        printf("Enter mass[%d][%d]:", i, j);
        scanf("%d", &mass[i][j]);
    }
    //memory ^
 
    //min elements in j and i
    
  int min=mass[0][0];
 
  int im=0;
  int jm=0;
 
  for(i=0; i<q; i++)
  {
      for(j=0;j<w;j++)
      {
          if(mass[i][j]<min) {
              min=mass[i][j];
              im=i;
              jm=j;
              
          }
      }
      }
          printf("\nResult mass[%d][%d]=%d\n",im,jm,min);
          return 0;
}
Программа находит минимальный элемент в массиве. в общем, я пытался сделать проверку типа:
          if(mass[jm][i]<minj)
          minj=mass[jm][i];
          i=im1;
 
          if(mass[j][im1]<minj) {
              minj=mass[j][im1];
(проверить мин. элемент в столбце, а потом в строчке) но не вышло. Помогайте.

Решение задачи: «Наименьшее число в массиве, а так же проверка, является ли оно наименьшее везде»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main()
{
    int mas[4][4] = {
        1,5,8,10,
        12,3,4,7,
        -5,1,8,-20,
        5,6,1,2,
    };
    int i,j, k;
    int min = INT_MAX;
    int flg = 0;
    for(i = 0; i < 4; i++) {
        for(j = 0; j < 4;j++) {
            if(mas[i][j] < min) {
                for(k = 0; k < 4; k++)
                    if(mas[i][j] > mas[k][j]) {flg=1;break;}
                if(flg == 0) min = mas[i][j];
                flg = 0;
            }
        }
    }
    printf("%d\n",min);
}

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

  1. Подключение необходимых библиотек для работы с массивами и выводом данных в консоль.
  2. Объявление двумерного массива с размером 4x4 и заполнение его значениями.
  3. Объявление переменных для хранения индексов минимального элемента.
  4. Объявление переменной для хранения минимального элемента.
  5. Объявление флага проверки на наименьшее значение во всем массиве.
  6. Пройтись по всем элементам массива в двух вложенных циклах.
  7. Если текущий элемент меньше минимального значения, то обновить минимальное значение.
  8. Если текущий элемент больше значения в соответствующем элементе по диагонали (при условии что индексы не выходят за пределы массива), то обновить флаг.
  9. Если флаг равен 0, то обновить минимальное значение.
  10. Обнулить флаг после выхода из цикла.
  11. Вывести на экран минимальное значение.

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

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