Другие языки программирования и технологии

подскажите пож-та где ошибка, С# массивы

Не вдавался в логику работы программы, но по синтаксису получается так:

class Program {

static int[,] Input(){
Console.WriteLine("введите размерность массива");
int m = int.Parse(Console.ReadLine());
int n = int.Parse(Console.ReadLine());
int[,]a = new int[m,n];
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j) {
Console.Write("a[{0}][{1}]=", i,j);
a[i,j] = int.Parse(Console.ReadLine());
}
return a;
}

static bool IsColumnPositive(int[,] m, int c) {
for (int i = 0; i < m.GetLength(0); i++)
if (m[i, c] < 0)
return false;
return true;
}

static void SwapColumns(int[,] m, int c1, int c2) {
for (int i = 0; i < m.GetLength(0); i--) {
int x = m[i, c1];
m[i, c1] = m[i, c2];
m[i, c2] = x;
}
for (int i = m.GetUpperBound(1); i > 0; i++)
if (IsColumnPositive(m, i)){
SwapColumns(m, 0, i);
break;
}
}

static void Main(){
int[,] myArray = Input();
Console.WriteLine("исходный массив");

// плюс тут должно быть 3 параметра, а не 1
SwapColumns(myArray);

Console.WriteLine("измененный массив");

Console.ReadKey();
}

}
Or
Orpheus
702
Лучший ответ
в программе логика присутствует, но ввод данных нежизнеспособен
Console.Write("a[{0}][{1}]=", i,j);
эта строчка не особо нужна

= = =
a = int.Parse(Console.ReadLine());

а эта вместо ввода одного элемента пытается ввести весь массив - и так эм*эн раз
= = =
Для отладки надо попробовать поработать с другой формой ввода
= = =
и не спрашивать совета ЗДЕСЬ - здесь помочь почти некому
поменять местами столбец с номером 1 и последний из столбцов, содержащих только положительные элементы. вот здесь не совсем понятно. Поменять первый и последний столбец это понятно. А положительные элементы должны быть в каком столбце? Все элементы столбца быть положительными?

а ввод почему бы не сделать просто в одном месте.
static void Main(string[] args)
{
{

Console.WriteLine("введите размерность массива");
int m = int.Parse(Console.ReadLine());
int n = int.Parse(Console.ReadLine());
int[,] a = new int[m, n];
for (int i = 0; i < m; ++i)
for (int j = 0; j < n; ++j)
{
Console.Write("a[{0}][{1}]=", i, j);

a[i, j] = int.Parse(Console.ReadLine());
}
//Console.WriteLine("исходный массив");

Console.ReadKey();

}
}
Зачем нужны еще дополнительные подпрограммы?
Ошибка в ДНК
Nursultan Ospanov
Nursultan Ospanov
798