Матрицы в Си (оптимизация кода) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, вообщем написал программу для создания матриц по правилу, решил оптимизировать код и сделать нахождения максимума и минимума в одном цикле, но так почему то не работает. В чём причина? В голове пробежал псевдо массив и вроде бы всё должно быть правильно, но нет находит только минимум а максимум некоректен.
#include 
    #include 
    #include 
    #include 
    #define N 3
    #define Y 4
    void main()
    {
        int i, j, o, p, a[N][Y];
        srand(time(NULL));
        //Создание первой матрицы
        for (i=0; i\t",a[i][j]);
            }
             printf("\n");
        } 
        //Вычисление минимального и максимального элемента в первой матрице
        int min=a[0][0];
        for (i = 0; i < N; ++i) {
            for (j = 0; j < Y; ++j) {
                if (min>a[i][j]){
                    min=a[i][j];
                }
                else max=a[i][j];
            }
        
        }
        printf("min=%d\n",min);
        printf("max=%d\n",max);
 
        int b[N][Y];
        srand(time(NULL));
        //Создание второй матрицы по правилу(строка 52)
        for (o=0; o\t",b[o][p]);
            } 
            printf("\n");
        }
    }
Тут код рабочий:
    #include 
    #include 
    #include 
    #include 
    #define N 3
    #define Y 4
    void main()
    {
        int i, j, o, p, a[N][Y];
        srand(time(NULL));
        //Создание первой матрицы
        for (i=0; i\t",a[i][j]);
            }
             printf("\n");
        } 
        //Вычисление минимального элемента в первой матрице
        int min=a[0][0];
        for (i = 0; i < N; ++i) {
            for (j = 0; j < Y; ++j) {
                if (min>a[i][j]){
                    min=a[i][j];
                }
            }
        
        }
        printf("min=%d\n",min);
        //Вычисляем максимум в первой матрице
        int max=a[0][0];
        for (i = 0; i < N; ++i) {
            for (j = 0; j < Y; ++j) {
                if (max\n",max);
 
        int b[N][Y];
        srand(time(NULL));
        //Создание второй матрицы по правилу(строка 52)
        for (o=0; o\t",b[o][p]);
            } 
            printf("\n");
        }
    }

Решение задачи: «Матрицы в Си (оптимизация кода)»

textual
Листинг программы
        //Вычисление минимального и максимального элемента в первой матрице
        int min=a[0][0];
        int max=a[0][0];
        for (i = 0; i < N; ++i) {
            for (j = 0; j < Y; ++j) {
                if (max<a[i][j]){
                    max=a[i][j];
                }
                if (min>a[i][j]){
                    min=a[i][j];
                }
            }
        
        }

Объяснение кода листинга программы

  1. Вычисление минимального и максимального элемента в первой матрице
  2. Переменные для хранения минимального и максимального элемента
  3. Инициализация переменных min и max значением первого элемента матрицы a[0][0]
  4. Циклы для обхода всех элементов матрицы
  5. Проверка каждого элемента матрицы на предмет того, является ли он максимальным или минимальным
  6. Если найден элемент, который является максимальным или минимальным, то обновляются значения переменных min и max
  7. После завершения циклов, min и max содержат минимальное и максимальное значение матрицы соответственно

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


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

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

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