Нахождение минимального значения элемента в массиве

1 минут

Продолжаю выкладывать решения простейших задач, так как прошлый ребус привёл мне на блог не мало посетителей и это не может не радовать!

Сегодня я напишу решение следующей задачи: Задан двухмерный массив вещественных чисел размерности 3х3. Найти номер строки и номер столбца, в которых находится наименьший элемент. Массив описать как типизированную константу.

Решение на C:

#include <stdio.h>

#define SIZE 3

int main()
{
    const int array[SIZE][SIZE] = {
        {2, 2, 3},
        {3, 2, 3},
        {6, 1, 5}
    };

    int i, j;
    int min_i = 0;
    int min_j = 0;
    int min = array[min_i][min_j];

    for (i = 0; i < SIZE; i++) {
        for (j = 0; j < SIZE; j++) {

            if (min > array[i][j]) {
                min_i = i;
                min_j = j;
                min = array[i][j];
            }

        }
    }

    printf("min = %d, pos = %d,%d\n", min, min_i, min_j);
    return 0;
}

Решение на Pascal:

const
    SIZE = 2;
    mas: array[0..SIZE, 0..SIZE] of integer = (
        (2, 2, 3),
        (3, 2, 3),
        (6, 1, 5)
    );

var
    i, j, min, min_i, min_j: integer;

begin
    min := mas[0][0];

    for i := 0 to SIZE do begin
        for j := 0 to SIZE do begin
            if (min > mas[i][j]) then begin
                min_i := i;
                min_j := j;
                min := mas[i][j];
            end;
        end;
    end;

    writeln('min = ', min, ', pos = ', min_i, ',', min_j);
end.

Решение на Rust:

fn main() {
    let arr = [[2, 2, 3], [3, 2, 3], [6, 1, 5]];

    let mut min = (arr[0][0], (0, 0));

    for (i, &x) in arr.iter().enumerate() {
        for (j, &y) in x.iter().enumerate() {
            if y < min.0 {
                min = (y, (i, j));
            }
        }
    }

    println!("min = {}, pos = {},{}", min.0, min.1.0, min.1.1);
}