Доработать код зубчатой матрицы - C#
Формулировка задачи:
В каждой строке матрицы A найти наименьший элемент и поменять его местами с первым элементом строки. Определить строку, в которой первый элемент является крупнейшим среди первых элементов других строк, переписать его элементы в
одномерный массив B и инвертировать порядок их расположения.
Есть такой код при выполнении которого если в строке генерируется количество столбцов меньше чем максимальное заданное, то вместо столбца создается число "0", что в свою очередь воспринимается минимальным элементом при поиске его в строке. Мне нужна помощь с тем чтобы этот ноль не учитывался(скрин выполнения программы прилагается):
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OOP_LAB2 { class Program { static void Main() { int rows, col; //переменные для количества строк и столбцов в матрице int[,] A; //int[] B; Random rand = new Random(); Console.WriteLine("Введите количество строк матрицы: "); rows = int.Parse(Console.ReadLine()); Console.WriteLine("Введите количество с матрицы: "); col = int.Parse(Console.ReadLine()); A = new int[rows, col]; for (int i = 0; i < rows; i++) { int z = rand.Next(1, col); for (int j = 0; j < z; j++) { A[i, j] = rand.Next(1, 100);//заполняем матрицу рандомными значениями от 0 до 100 Console.Write(A[i, j] + "\t"); } Console.WriteLine(); } Console.WriteLine(); Console.WriteLine("Меняем местами:"); for (int i = 0; i < rows; i++) { // Поиск минимального элемента в строке int ind = 0, min = A[i, ind]; for (int j = 0; j < col; j++) if (A[i, j] < min) { ind = j; min = A[i, j]; } int temp = A[i, 0]; A[i, 0] = A[i, ind]; A[i, ind] = temp; // Выводим строку на экран for (int j = 0; j < col; j++) Console.Write(A[i, j] + "\t"); Console.WriteLine(); } Console.ReadLine(); } } }
Решение задачи: «Доработать код зубчатой матрицы»
textual
Листинг программы
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.IO; using System.Numerics; namespace ConsoleApplication5 { class Program { static Random rnd = new Random(); static void Main(string[] args) { Console.WriteLine("Введите количество строк матрицы: "); int rows = int.Parse(Console.ReadLine()); Console.WriteLine("Введите количество с матрицы: "); int col = int.Parse(Console.ReadLine()); int[][] A = new int[rows][]; for(int i = 0; i < A.Length; i++) { A[i] = new int[rnd.Next(1,col+1)]; for(int j = 0; j < A[i].Length; j++) { A[i][j] = rnd.Next(1, 101); // если диапазон от 1 до 100 включительно Console.Write(A[i][j] + "\t"); } Console.WriteLine(); } Console.WriteLine("Меняем местами:"); for(int i = 0; i < A.Length; i++) { int ind = 0, min = A[i][ind]; for(int j = 0; j < A[i].Length; j++) if(A[i][j] < min) { ind = j; min = A[i][j]; } int temp = A[i][0]; A[i][0] = A[i][ind]; A[i][ind] = temp; for(int j = 0; j < A[i].Length; j++) Console.Write(A[i][j] + "\t"); Console.WriteLine(); } Console.ReadKey(true); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д