Определить значения и позиции максимального и минимального элемента массива - C (СИ) (79148)
Формулировка задачи:
количество нечетных элементов определяет верно..
а вот не правильно определяет значения и позиции максимального и минимального элемента массива.
Кто разбирается проверьте пожалуйста)
#include <stdio.h> #include <conio.h> #define M_ROWS 3 #define M_COLUMNS 3 int matrix[M_ROWS][M_COLUMNS] = { {1, 6, 7}, {2, 5, 8}, {3, 4, 9}, }; int main() { int n = 0; int i, j; int max, min, jmax, jmin, imax, imin; max = min = matrix[0][0]; imax = imin = 0; jmax = jmin = 0; for(i = 0; i < M_ROWS; i++) { for(j = 0; j < M_COLUMNS; j++) { if ((matrix[i][j] % 2) == 1) n++; // =1 if (matrix[i][j] < min) { min = matrix[i][j]; imin = i; jmin = j; } if(matrix[j][j] > max) { max = matrix[i][j]; imax = i; jmax = j; } } } printf("Количество нечетных элементов: %d\n", n); printf("Максимальный: %d %d\n", imax, jmax); printf("Минимальный: %d %d\n", imin, jmin); getch(); return 0; }
Решение задачи: «Определить значения и позиции максимального и минимального элемента массива»
textual
Листинг программы
#include <stdio.h> #define ROWS 3 #define COLS 3 int main() { int i = 0; int j = 0; int imax = 0; int jmax = 0; int imin = 0; int jmin = 0; int nodds = 0; int matrix[ROWS][COLS] = { { 1, 6, 7 }, { 2, 5, 8 }, { 3, 4, 9 } }; for(i = 0; i < ROWS; ++i) { for(j = 0; j < COLS; ++j) { if(matrix[i][j] % 2 != 0) { ++nodds; } if(matrix[imin][jmin] > matrix[i][j]) { imin = i; jmin = j; } if(matrix[imax][jmax] < matrix[i][j]) { imax = i; jmax = j; } } } printf("Matrix:\n"); for(i = 0; i < ROWS; ++i) { for(j = 0; j < COLS; ++j) { printf("%d ", matrix[i][j]); } printf("\n"); } printf("\nAmount of odd elements is %d", nodds); printf("\nMaximal element has coordinates [%d][%d] and equal %d", imax, jmax, matrix[imax][jmax]); printf("\nMinimum element has coordinates [%d][%d] and equal %d", imin, jmin, matrix[imin][jmin]); printf("\n\n"); return 0; }
Объяснение кода листинга программы
В данном коде на языке C выполняется поиск максимального и минимального элемента в заданном массиве. Список действий:
- Объявление переменных:
- i, j - для прохода по массиву
- imax, jmax, imin, jmin - для хранения координат максимального и минимального элемента
- nodds - для подсчета количества нечетных элементов
- Задание массива:
- matrix[ROWS][COLS] = {1, 6, 7; 2, 5, 8; 3, 4, 9}
- Поиск нечетных элементов:
- Проход по всем элементам массива
- Если элемент нечетный, увеличиваем значение переменной nodds
- Поиск максимального и минимального элемента:
- Проход по всем элементам массива
- Сравниваем текущий элемент с предыдущим максимальным/минимальным элементом
- Обновляем значения переменных imax, jmax, imin, jmin, если текущий элемент больше/меньше предыдущего макси/мин
- Вывод результатов:
- Выводим массив на экран
- Выводим количество нечетных элементов
- Выводим координаты и значение максимального элемента
- Выводите координаты и значение минимального элемента
- Вывод завершен
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д