Найти минимальный элемент квадратной матрицы и вывести на экран номер строки и столбца, в которых он находится - 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 (номер столбца), в которых находится минимальный элемент. Код не содержит ошибок синтаксиса и логически корректен. Однако, для определения минимального элемента в матрице, необходимо проверить саму матрицу на предмет наличия в ней отрицательных значений.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д