Доработать код зубчатой матрицы - 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);
}
}
}