Работа с матрицами (2d массивы) - C#
Формулировка задачи:
часть кода моей л/р по проге (работа с массивами: ввод/вывод, max/min и т.п.)...
в отдельном решении, все работало. а если переписать этот код в метод, то нет.
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.IO;
- namespace Array_Rang_2
- {
- class Program
- {
- int[] intArray = null;
- int inputChoice = 0;
- int inputChoiceLength = 0;
- bool exit = true;
- //Ввод матрицы с клав-ы
- void inputMatrix(int[] args)
- {
- //Console.WriteLine("Введите размерность матрицы: ");
- Console.Write("Введите кол-во строк матрицы: ");
- int m = Convert.ToInt32(Console.ReadLine()); //строки
- Console.Write("Введите кол-во столбцов матрицы: ");
- int n = Convert.ToInt32(Console.ReadLine()); //столбцы
- Console.WriteLine(" З А П О Л Н Е Н И Е ");
- int[,] arrMtrx = new int[m, n];
- for (int i = 0; i < m; i++)
- for (int j = 0; j < n; j++)
- {
- string s = Console.ReadLine();
- arrMtrx[i, j] = int.Parse(s);
- }
- for (int i = 0; i < m; i++)
- {
- for (int j = 0; j < n; j++)
- Console.Write("{0:d} ", arrMtrx[i, j]);
- Console.WriteLine();
- }
- Console.ReadLine();
- }
- // Max, Min матрицы // NE RABOTAET??!???
- void matrixMaxMin(int[] arrMtrx)
- {
- int rxMax = arrMtrx[0, 0]; int maxRow = 0; int maxCol = 0;
- int rxMin = arrMtrx[0, 0]; int minRow = 0; int minCol = 0;
- for (int i = 1; i < m; i++)
- for (int j = 1; j < n; j++)
- {
- if (arrMtrx[i, j] > rxMax)
- {
- maxRow = i; maxCol = j;
- rxMax = arrMtrx[i, j];
- }
- if (arrMtrx[i, j] < rxMin)
- {
- minRow = i; minCol = j;
- rxMin = arrMtrx[i, j];
- }
- }
- maxRow = maxRow + 1; maxCol = maxCol + 1; minRow = minRow + 1; minCol = minCol + 1;
- Console.WriteLine("Max матрицы: a[" + maxRow + "," + maxCol + "]=" + rxMax);
- Console.WriteLine("Min матрицы: a[" + minRow + "," + minCol + "]=" + rxMin);
- Console.ReadKey();
- }
- }
- }
что не так, подскажите?
Решение задачи: «Работа с матрицами (2d массивы)»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.IO;
- namespace Array_Rang_2
- {
- class Program
- {
- int[] intArray = null;
- int[,] matrix = null;
- int m,n;
- int inputChoice = 0;
- int inputChoiceLength = 0;
- bool notnull = false;
- bool notnullM = false;
- bool exit = true;
- public void inputArray()
- {
- Console.Write("Длина : ");
- intArray = new int[Int32.Parse(Console.ReadLine())];
- for (int i = 0; i < intArray.Length; i++)
- {
- Console.Write("[{0}] = ",i);
- intArray[i] = Int32.Parse(Console.ReadLine());
- }
- Console.WriteLine();
- foreach (int n in intArray)
- Console.Write(n + " ");
- notnull = true;
- Console.WriteLine();
- Console.ReadKey(true);
- }
- public void MinMax()
- {
- if (notnull)
- {
- int min = int.MaxValue, max = int.MinValue, minI = 0, maxI = 0;
- for (int i = 0; i < intArray.Length; i++)
- {
- if (intArray[i] > max)
- {
- max = intArray[i];
- maxI = i;
- }
- if (intArray[i] < min)
- {
- min = intArray[i];
- minI = i;
- }
- }
- Console.WriteLine("min : [{0}] = {1}", minI, min);
- Console.WriteLine("max : [{0}] = {1}", maxI, max);
- }
- else Console.WriteLine("массив не заполнен!!");
- Console.WriteLine();
- Console.ReadKey(true);
- }
- public void Show()
- {
- if (notnull)
- {
- foreach (int n in intArray)
- Console.Write(n + " ");
- }
- else Console.WriteLine("массив не заполнен!!");
- Console.WriteLine();
- Console.ReadKey(true);
- }
- //Ввод матрицы с клав-ы
- public void inputMatrix()
- {
- //Console.WriteLine("Введите размерность матрицы: ");
- Console.Write("Введите кол-во строк матрицы: ");
- m = Convert.ToInt32(Console.ReadLine()); //строки
- Console.Write("Введите кол-во столбцов матрицы: ");
- n = Convert.ToInt32(Console.ReadLine()); //столбцы
- Console.WriteLine(" З А П О Л Н Е Н И Е ");
- matrix = new int[m, n];
- for (int i = 0; i < m; i++)
- for (int j = 0; j < n; j++)
- {
- Console.Write("[{0},{1}] = ",i,j);
- matrix[i, j] = int.Parse(Console.ReadLine());
- }
- for (int i = 0; i < m; i++)
- {
- for (int j = 0; j < n; j++)
- Console.Write("{0:d} ", matrix[i, j]);
- Console.WriteLine();
- }
- notnullM = true; ;
- Console.ReadKey(true);
- }
- public void matrixMaxMin(int[,] matrix)
- {
- if (notnullM)
- {
- int rxMax = matrix[0, 0]; int maxRow = 0; int maxCol = 0;
- int rxMin = matrix[0, 0]; int minRow = 0; int minCol = 0;
- for (int i = 1; i < m; i++)
- for (int j = 1; j < n; j++)
- {
- if (matrix[i, j] > rxMax)
- {
- maxRow = i; maxCol = j;
- rxMax = matrix[i, j];
- }
- if (matrix[i, j] < rxMin)
- {
- minRow = i; minCol = j;
- rxMin = matrix[i, j];
- }
- }
- maxRow = maxRow + 1; maxCol = maxCol + 1; minRow = minRow + 1; minCol = minCol + 1;
- Console.WriteLine("Max матрицы: a[" + maxRow + "," + maxCol + "]=" + rxMax);
- Console.WriteLine("Min матрицы: a[" + minRow + "," + minCol + "]=" + rxMin);
- }
- else Console.WriteLine("Матрица не заполнена !!!");
- Console.ReadKey(true);
- }
- //static void menu()
- void menu()
- {
- while (exit)
- {
- Console.SetCursorPosition(1, 1);
- Console.BackgroundColor = ConsoleColor.DarkMagenta;
- Console.ForegroundColor = ConsoleColor.White;
- Console.Write("Выберите опцию: \n ---МАССИВЫ---\n 1 - ввод массива\n 2 - min/max\n 3 - вывод\n 4 - отсортировать по возрастанию\n ---МАТРИЦЫ--- \n 7 - ввод матрицы \n 8 - max, min элемент матрицы \n");
- Console.ResetColor();
- Console.Write(">> ");
- inputChoice = Convert.ToInt32(Console.ReadLine());
- //Console.WriteLine("inputChoice = " + inputChoice);
- switch (inputChoice)
- {
- case 1: inputArray();
- break;
- case 2: MinMax();
- break;
- case 3: Show();
- break;
- case 4: Console.WriteLine(@"\_('_')_/");
- break;
- case 7: inputMatrix();
- break;
- case 8: matrixMaxMin(matrix);
- break;
- case 0: exit = false;
- break;
- }
- if (exit == true)
- {
- Console.WriteLine("Нажмите любую клавишу для продолжения...");
- Console.ReadKey(true);
- }
- Console.Clear();
- }
- }
- static void Main(string[] args)
- {
- Program p = new Program();
- for (; ; )
- p.menu();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д