Дана матрица n столбцов, m строк, надо сделать так чтобы ее столбцы поменялись местами, то есть первый стал вторым, второй третьим... а n первым.
Как это сделать? Сделал так чтобы выводилась матрица, а как поменять столбцы местами не могу понять. Помогите пожалуйста

Зачем ты создаешь массив размера m+1 на n+1? Привыкай, что в подавляющем большинстве языков программирования индексы массива ВСЕГДА начинаются с НУЛЯ. Что тебе помешало написать не for (int i = 1; i <= n; i++), а for (int i = 0; i < n; i++)? Делать дополнительные строку/столбец только для того, чтобы не использовать индекс 0 - это говнокод.
А вот так можно собственно обмен столбцов:
for (int i = 0; i < n; ++i) {
for (int j = 0, k = m - 1; j < k; ++j, --k) {
int tmp = arr[i, j];
arr[i, j] = arr[i, k];
arr[i, k] = tmp;
}
}
using System;
namespace Example {
public class Program {
private static void Main() {
var rows = Number("\n\t Количество строк: ");
var cols = Number("\t Количество столбцов: ");
Console.WriteLine();
var matrix = CreateMatrix(rows, cols);
Show(ref matrix);
Console.WriteLine();
ShiftRight(ref matrix);
Show(ref matrix);
Console.ReadKey();
}
private static int Number(string msg) {
int number;
do Console.Write(msg); while (!int.TryParse(Console.ReadLine(), out number));
return number;
}
private static int[][] CreateMatrix(int rows, int cols) {
var rand = new Random();
int[][] matrix = new int[rows][];
for (var i = 0; i < rows; ++i) matrix[i] = new int[cols];
for (var i = 0; i < rows; ++i) for (var j = 0; j < cols; ++j) matrix[i][j] = rand.Next(0, 100);
return matrix;
}
private static void Show(ref int[][] matrix) {
foreach (var row in matrix) {
foreach (var value in row) Console.Write("{0,4}", value);
Console.WriteLine();
}
}
private static void ShiftRight(ref int[][] matrix) {
for (var i = 0; i < matrix.GetLength(0); ++i) {
var lastIndex = matrix[i].GetLength(0) - 1;
var lastElement = matrix[i][lastIndex];
for (var j = lastIndex - 1; j >= 0; --j) matrix[i][j + 1] = matrix[i][j];
matrix[i][0] = lastElement;
}
}
}
}
создай доп массив для хранения столбца, сохрани в него последний столбец, например, 10 столб цов в массиве - 9 ставь на место 10го, 8 на место 9 и т. д, в конце на место первого ставь 10ый (из доп массива)