Проблемы в реализации программы СИ
В двумерном масиве наполненом рандомными цыфрами надо найти максимумы строк,а потом среди этих максимумов найти минимальное значение и его координаты в масиве.Проблема заключается в том что я не могу реализовать вывод координат для минимума среди максимумов строк,прошу вашей помощи.Заранее спасибо.
#define _CRT_SECURE_NO_WARNINGS
#include <time.h>
#include <stdio.h>
#define _USE_MATH_DEFINES
#include <math.h>
void main()
{
int array[20][20] = { 0 };
int N, A, B;
A = -20;
B = 20;
int min = 21;
int S = 0;
int F = 0;
printf("Enter number of elements ");
scanf("%d", &N);
srand(time(NULL));
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
array[i][j] = rand() % (B - A + 1) + A;
printf("%5d", array[i][j]);
}
printf("\n");
}
for (int i = 0; i < 10; i++)
{
int max = -21;
for (int j = 0; j < 10; j++)
{
if (array[i][j] > max)
{
max = array[i][j];
if (array[i][j] < min)
{
S = i;
F = j;
}
}
}
if (max < min)
{
min = max;
}
printf("\n Maximal element is %d ", max);
}
printf("\n Minimal element is %d [%d] [%d] ", min,S,F);
}
Ответы (1 шт):
Автор решения: Павел Ериков
→ Ссылка
Вот пример кода с комментариями об ошибках, которые у вас были. Если есть вопросы не стесняйтесь задавать:
int F = 0; //Индекс столбика максимального элемента
int resS = 0, resF = 0; //Координаты минимального максимума строк
//Нужно проходит не от 0 до 10, а от 0 до N.
for (int i = 0; i < N; i++) {
int max = -21;
for (int j = 0; j < N; j++) {
//Находим максимум в строке
if (array[i][j] > max) {
max = array[i][j];
//Сохраняя его столбец
F = j;
}
}
//После того как нашли максимум в строке
//сравним с min чтобы найти минимальный максимум
if (array[i][F] < min) {
//Сохраняем координаты
resS = i;
resF = F;
min = array[i][F];
}
printf("\n Maximal element is %d ", max);
}
printf("\n Minimal element is %d [%d] [%d] ", min, resS, resF);