Найти минимальный элемент квадратной матрицы и вывести на экран номер строки и столбца, в которых он находится - 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 */ } /* конец функции*/
Объяснение кода листинга программы
В данном коде реализована функция, которая находит минимальный элемент в квадратной матрице и сохраняет номер строки и столбца, в которых этот элемент находится.
- Переменные i и j объявлены как счетчики циклов.
- Переменные x и y объявлены как счетчики для хранения номера строки и столбца, в которых находится минимальный элемент.
- Два вложенных цикла for проходят по всем элементам матрицы.
- Если текущий элемент a[i][j] меньше, чем элемент a[x][y], то значения x и y обновляются.
- После завершения циклов, функция возвращает значение x (номер строки) и y (номер столбца), в которых находится минимальный элемент. Код не содержит ошибок синтаксиса и логически корректен. Однако, для определения минимального элемента в матрице, необходимо проверить саму матрицу на предмет наличия в ней отрицательных значений.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д