@LP-DIMAN

Почему не меняется первый и последний столбец местами в С++? Где ошибка?

#include <iostream>
using namespace std;
int main()
{
	int n;
	cin >> n;
	int ** mas;
	mas = new int*[n];
	for (int i = 0; i<n; i++)
	{
		mas[i] = new int[n];
	}
	srand(NULL);
	for (int i = 0; i<n; i++)
	{
		for (int j = 0; j<n; j++)
		{
			mas[i][j] = rand() % 30;
			cout << mas[i][j] << " ";
		}
		cout << endl;
	}
	cout << endl;
	
		for (int j = 0; j<n; j++)
		{
			swap(mas[n / 2-1 ][j], mas[n / 2][j]);
		}

	
	
	for (int i = 0; i<n; i++)
	{
		for (int j = 0; j<n; j++)
		{
			cout << mas[i][j] << " ";
		}
		cout << endl;
	}
	for (int j = 0; j < n; ++j)/*
	{
		const int temp = mas[0][j];
		mas[0][j] = mas[n - 1][j];                     Вот этот цикл должен менять столбцы местами
		mas[n - 1][j] = temp;
		
	}*/
}
  • Вопрос задан
  • 241 просмотр
Пригласить эксперта
Ответы на вопрос 2
SlavskiyDenis
@SlavskiyDenis
Всегда Саверин, никогда Цукерберг.
Рискну: он у вас закомментирован.
Ответ написан
@Praytic
Ну во первых вы не выводите после свапа столбцов массив, поэтому вы бы не увидели результата, а во вторых, там нужно не те коэффициенты менять. Вот:
for (int j = 0; j < n; ++j)
 {
	 const int temp = mas[j][0];
	 mas[j][0] = mas[j][n-1];
	 mas[j][n-1] = temp;
 }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы