Определить значения и позиции максимального и минимального элемента массива - 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 выполняется поиск максимального и минимального элемента в заданном массиве. Список действий:

  1. Объявление переменных:
    • i, j - для прохода по массиву
    • imax, jmax, imin, jmin - для хранения координат максимального и минимального элемента
    • nodds - для подсчета количества нечетных элементов
  2. Задание массива:
    • matrix[ROWS][COLS] = {1, 6, 7; 2, 5, 8; 3, 4, 9}
  3. Поиск нечетных элементов:
    • Проход по всем элементам массива
    • Если элемент нечетный, увеличиваем значение переменной nodds
  4. Поиск максимального и минимального элемента:
    • Проход по всем элементам массива
    • Сравниваем текущий элемент с предыдущим максимальным/минимальным элементом
    • Обновляем значения переменных imax, jmax, imin, jmin, если текущий элемент больше/меньше предыдущего макси/мин
  5. Вывод результатов:
    • Выводим массив на экран
    • Выводим количество нечетных элементов
    • Выводим координаты и значение максимального элемента
    • Выводите координаты и значение минимального элемента
    • Вывод завершен

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы