Сортировка последней строки двувымерного массива

Задача состоит в том,что нужно отсортировать последний рядок массива по убыванию. Не понимаю,почему не работает код(ошибок в коде нет,просто сортировка не выполняется),помимо основной задачи нужно было выполнить нахождение максимального элемента,но с этим справился

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdio.h>
#include <ctime>
#define SIZE 6

using namespace std;

int main()
{
    setlocale(LC_ALL, "ru");

    //Создаем массив 
    int mass[SIZE][SIZE];

    int max = mass[0][0];

    //Заполняем массив и выводим его на экран
    for (int i = 0; i < SIZE; ++i)
    {
        for (int j = 0 ; j < SIZE ;++j)
        {
            mass[i][j] = i + j + 1;
            cout << mass[i][j] << "\t";
        }
        cout << endl;
    }

    //Находим максимальный элемент массива
    for (int i = 0; i < SIZE; ++i)
        for (int j = 0; j < SIZE; ++j)
            if (max < mass[i][j]) max = mass[i][j];
    
    cout << "Максимальный элемент: " << max << endl;

    //Сортировка последней строки 
    for (int k = 0; k < SIZE - 1; ++k)
        for (int j = 0; j < SIZE - 1 - k; ++j)
            if (mass[SIZE][j + 1] > mass[SIZE][j])
            {
                int c = mass[SIZE][j + 1];
                mass[SIZE][j + 1] = mass[SIZE][j];
                mass[SIZE][j] = c;
            }

    //Выводим на экран отсортированную матрицу
    for (int i = 0; i < SIZE; ++i)
    {
        for (int j = 0; j < SIZE; ++j)
        {
            cout << mass[i][j] << "\t";
        }
        cout << endl;
    }
    system("pause");
    return 0;
}

Ответы (1 шт):

Автор решения: Mikey

Моя ошибка заключалась в том, что я не учел того, что в массиве нумерация начинается с 0, следовательно вместо mass[SIZE][j] надо было написать [SIZE - 1][j]:

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdio.h>
#include <ctime>
#define SIZE 6

using namespace std;

int main()
{
    setlocale(LC_ALL, "ru");
    srand(time(NULL));
    
    //Создаем массив 
    int mass[SIZE][SIZE];

    int max = mass[0][0];

    //Заполняем массив и выводим его на экран
    for (int i = 0; i < SIZE; ++i)
    {
        for (int j = 0 ; j < SIZE ;++j)
        {
            mass[i][j] = i + j + 1;
            cout << mass[i][j] << "\t";
        }
        cout << endl;
    }

    //Находим максимальный элемент массива
    for (int i = 0; i < SIZE; ++i)
        for (int j = 0; j < SIZE; ++j)
            if (max < mass[i][j]) max = mass[i][j];
    
    cout << "Максимальный элемент: " << max << endl;

    //Сортировка последней строки 
    for (int k = 0; k < SIZE - 1; ++k)
        for (int j = 0; j < SIZE - 1 - k; ++j)
            if (mass[SIZE - 1][j + 1] > mass[SIZE - 1][j])
            {
                int c = mass[SIZE - 1][j + 1];
                mass[SIZE - 1][j + 1] = mass[SIZE - 1][j];
                mass[SIZE - 1][j] = c;
            }

    //Выводим на экран отсортированную матрицу
    for (int i = 0; i < SIZE; ++i)
    {
        for (int j = 0; j < SIZE; ++j)
        {
            cout << mass[i][j] << "\t";
        }
        cout << endl;
    }
    system("pause");
    return 0;
}
→ Ссылка