Не вдавался в логику работы программы, но по синтаксису получается так:
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();
}
}
Другие языки программирования и технологии
подскажите пож-та где ошибка, С# массивы
в программе логика присутствует, но ввод данных нежизнеспособен
Console.Write("a[{0}][{1}]=", i,j);
эта строчка не особо нужна
= = =
a = int.Parse(Console.ReadLine());
а эта вместо ввода одного элемента пытается ввести весь массив - и так эм*эн раз
= = =
Для отладки надо попробовать поработать с другой формой ввода
= = =
и не спрашивать совета ЗДЕСЬ - здесь помочь почти некому
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();
}
}
Зачем нужны еще дополнительные подпрограммы?
а ввод почему бы не сделать просто в одном месте.
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();
}
}
Зачем нужны еще дополнительные подпрограммы?
Ошибка в ДНК
Похожие вопросы
- Подскажите оператор для удаления элемента из массива. Для С++
- WMP 11 не хочет писать видео, MP3,DVD-требует какой-тоДВД-Декодер. Подскажите, пож., как всё таки надо? Спасибо.
- Посоветуйте антивирус нормальный! Сылку где скачать, если можно. И подскажите пож...
- Массивы. Ошибка в программе. Basic
- Помогите! Ошибка при попытке удалить динамический массив
- Язык Си|Будет ли ошибкой, если я буду увеличивать размер массива по мере ввода в него?
- При введении программы на Pascal ABC выдается ошибка "нельзя вводить данные типа "массив", массивы вводятся поэлементно
- Комп при включении выдаёт ошибку . Что то за ошибка и как её исправить _посмотрите пож_ста скрин .
- Дан массив. Выведите те его элементы, которые встречаются в массиве только один раз. В чем ошибка?
- Помогите с исправить ошибку, массивы, c++builder