Работа с динамической памятью - C (СИ) (148139)
Формулировка задачи:
Нужно наименьший элемент каждой строки, начиная со второй заменить наибольшим элементом предшествующей строки. Ошибка в том, что программа просто находит наибольший элемент и присваивает его каждому наименьшему. Например, если в первой строчке встретился элемент 99, то он присвоит его каждому наименьшему последующих строк.
Помогите
int max, indexMax, min, indexMin; for (i = 0; i < SIZE-1; i++) { max = matrix[i][0]; indexMax = 0; for (j = 0; j < SIZE; j++) { if (max < matrix[i][j]) { max = matrix[i][j]; indexMax = j; } } min = matrix[i + 1][0]; indexMin = 0; for (j = 0; j < SIZE; j++) { if (matrix[i + 1][j] < min) { min = matrix[i + 1][j]; indexMin = j; } } matrix[i + 1][indexMin] = matrix[i][indexMax]; }
Решение задачи: «Работа с динамической памятью»
textual
Листинг программы
int max, i, min, j, max_prev; for (i = 0; i < SIZE; i++){ max = 0; if(i) min = 0; for (j = 1; j < SIZE; j++){ if (matrix[i][max] < matrix[i][j]) max = j; if(i){ if (matrix[i][min] > matrix[i][j]) min = j; } } if(i) matrix[i][min] = matrix[i - 1][max_prev]; max_prev = max; }
Объяснение кода листинга программы
- Объявлены следующие переменные: max, i, min, j, max_prev;
- Выполняется цикл for для каждого элемента массива (SIZE элементов):
- Внутри цикла, переменной max присваивается значение 0.
- Если i больше 0, то переменной min также присваивается значение 0.
- Выполняется второй цикл for для каждого элемента массива (SIZE-1 элементов):
- Внутри второго цикла, проверяется, является ли элемент в текущей строке, в максимальном столбце (max) меньше, чем элемент в следующем столбце (j). Если это так, то значение max обновляется на j.
- Если i больше 0, то проверяется, является ли элемент в текущей строке, в минимальном столбце (min) больше, чем элемент в следующем столбце (j). Если это так, то значение min обновляется на j.
- После завершения второго цикла, если i больше 0, то элемент в текущей строке, в минимальном столбце (min) заменяется на элемент в предыдущей строке, в максимальном столбце (max_prev).
- Значение max_prev обновляется на текущее значение max.
- Цикл завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д