Ошибка в коде с++ начинающий

Рейтинг: -1Ответов: 1Опубликовано: 21.04.2023

Всем здравствуйте! Только начала изучать двумерные массивы и столкнулась с проблемой в задаче обмен столбцов: в заданном двумерном массиве чисел A, состоящем из n строк и m столбцов, необходимо найти номер столбца, в котором находится максимальный элемент матрицы. Затем требуется поменять местами первый столбец с найденным. Кто поможет найти ошибку? Функции и векторы использовать нельзя. Код:

#include <iostream>

using namespace std;

int main()
{
    int n, m, k;
    cin>>n>>m;
    int a[n][m];
    int max=-101;
    for(int i=0; i<n; i++){
        for(int j=0; j<m; j++)
        cin>>a[i][j];
    }
    for(int i=0; i<n; i++){
        for(int j=0; j<m; j++)
        if(a[i][j]>max){
        max=a[i][j];
        k=j;}
    }
    for(int i=k; i>0; i--)
    swap(a[i][0], max);
    
    for(int i=0; i<n; i++){
        cout<<endl;
        for(int j=0; j<m; j++)
        cout<<a[i][j]<<" ";
    }
    
}

Ответы

▲ 1Принят

Внимательно посмотрите, что с чем нужно менять

 if (k>0) 
    for(int i=0; i<n; i++)
       swap(a[i][k], a[i][0]);