Найти минимальный элемент квадратной матрицы и вывести на экран номер строки и столбца, в которых он находится - C (СИ)

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

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

Найти минимальный элемент матрицы X(4х4) и вывести на экран номер строки и столбца, в которых он находится. C функциями ввода-вывода разобрался, а вот с самим условием проблема. Знаю, что ошибка в X,Y но как исправить?
#include <stdio.h> /*подключении стандартной библиотеки ввода-вывода*/
#include <conio.h>     /*Подключение библиотеки conio.h*/
 
void input(int a[4][4]) /* функция ввода матрицы */
{ /* начало тела функции*/
int i,j; /* переменные-счетчики */
for(i=0;i<4;i++) /* цикл по всем строкам матрицы */
for(j=0;j<4;j++) /* цикл по всем столбцам матрицы */
scanf_s("%d",&a[i][j]); /* вводим a[i][j] */
} /* конец тела функции */
void output(int a[][4]) /* функция вывода матрицы */
{ /* начало тела функции */
int i,j; /* переменные-счечтики */
for(i=0;i<4;i++) /* цикл по всем строкам матрицы */
{/* начало тела цикла */
for(j=0;j<4;j++) /* цикл по всем столбцам матрицы */            
printf("%d ",a[i][j]); /* вывод a[i][j] */
printf("\n"); /* переход на новую строку */
}/* конец тела цикла */
} /* конец функции*/
int sum(int a[4][4]) /* функция  */
{ /* начало тела функции*/
    int i,j; /* переменные-счетчики */
    int x = 0, y = 0; /* переменные-счетчики */
    for( i = 0; i < 4; ++i ) /*Начало цикла с 0, пока i<4 с шагом +1*/
for( j = 0; j < 4; ++j ) /*Начало цикла с 0, пока j<4 с шагом +1*/
{                              /*Начало тела цикла*/
if( a[i][j] < a[x][y] ) /*Если элемент a[i][j]<a[x][y], то начинается цикл*/
{                             /*Начало тела цикла*/
x = i;                /*х присваивается значение i*/
y = j;                      /*y присваивается значение j*/
}                              /*Конец тела цикла*/
}                       /*Конец тела цикла*/  
return x;
return y;/* возвращение summa */
} /* конец функции*/
 
int main() { /* основная функция программы */
int a[4][4]; /* матрица, количество, сумма и временная перем. */
    int x,y; /* переменные-счетчики */
printf("Vvedite matricu a (4x4):\n"); /* оператор вывода */
input(a); /* ввод матрицы */
printf("Vivod matrici a:\n");/* оператор вывода */ 
output(a); /* вывод матрицы */
x,y=sum(a); 
printf("x = %d, y = %d, min = %d", x, y, a[x][y]); /*Вывод мин. элемента на экран */
 
_getch();             /*Оператор паузы*/
}              /*Конец тела программы*/

Решение задачи: «Найти минимальный элемент квадратной матрицы и вывести на экран номер строки и столбца, в которых он находится»

textual
Листинг программы
int sum(int a[4][4]) /* функция  */
{ /* начало тела функции*/
    int i,j; /* переменные-счетчики */
    int x = 0, y = 0; /* переменные-счетчики */
    for( i = 0; i < 4; ++i ) /*Начало цикла с 0, пока i<4 с шагом +1*/
for( j = 0; j < 4; ++j ) /*Начало цикла с 0, пока j<4 с шагом +1*/
{                              /*Начало тела цикла*/
if( a[i][j] < a[x][y] ) /*Если элемент a[i][j]<a[x][y], то начинается цикл*/
{                             /*Начало тела цикла*/
x = i;                /*х присваивается значение i*/
y = j;                      /*y присваивается значение j*/
}                              /*Конец тела цикла*/
}                       /*Конец тела цикла*/  
return x;
return y;/* возвращение summa */
} /* конец функции*/

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

В данном коде реализована функция, которая находит минимальный элемент в квадратной матрице и сохраняет номер строки и столбца, в которых этот элемент находится.

  1. Переменные i и j объявлены как счетчики циклов.
  2. Переменные x и y объявлены как счетчики для хранения номера строки и столбца, в которых находится минимальный элемент.
  3. Два вложенных цикла for проходят по всем элементам матрицы.
  4. Если текущий элемент a[i][j] меньше, чем элемент a[x][y], то значения x и y обновляются.
  5. После завершения циклов, функция возвращает значение x (номер строки) и y (номер столбца), в которых находится минимальный элемент. Код не содержит ошибок синтаксиса и логически корректен. Однако, для определения минимального элемента в матрице, необходимо проверить саму матрицу на предмет наличия в ней отрицательных значений.

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

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