Найти минимальное значение в массиве - C (СИ) (73344)
Формулировка задачи:
Осуществите ввод с клавиатуры двумерного массива 2х4 целочисленных элементов и определите среди них минимальное.
Я тут что-то накалякал, но он мне выводит массив два раза и почему-то показывает мне максимальное значение, а не минимальное. Помогите, пожалуйста.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int A[4][3];
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
printf("A[%i][%i]= ", i, j);
scanf("%i", &A[i][j]);
}
}
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
printf(" %i", A[i][j]);
}
printf("\n");
}
int min=A[0][0];
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
if(min<A[i][j])
{
min=A[i][j];
}
printf(" %i", A[i][j]);
}
printf("\n");
}
printf("\n min. element = %i", min);
}Решение задачи: «Найти минимальное значение в массиве»
textual
Листинг программы
int main(int argc, const char * argv[])
{
int A[4][3];
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
printf("A[%i][%i]= ", i, j);
scanf("%i", &A[i][j]);
}
}
// вот тут сразу все будет считаться и выводиться
int min=A[0][0];
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
if(min>A[i][j]) // условие просто переосмысли
{
min=A[i][j];
}
printf(" %i", A[i][j]); // это внутри цикла поэтому все распечатается, дополнительно цикла не нужно
}
printf("\n");
}
printf("\n min. element = %i", min);
return 0;
}
Объяснение кода листинга программы
- Объявлен массив A размером 4x3.
- Введены значения элементов массива A с помощью scanf.
- Инициализировано переменная min значением A[0][0].
- Происходит сравнение каждого элемента массива A с текущим значением переменной min.
- Если текущий элемент меньше min, то min обновляется этим элементом.
- Все элементы массива A выводятся на экран с помощью printf.
- Переменная min выводится на экран с помощью printf.
- Возвращается 0, чтобы указать, что программа успешно завершилась.