Доработать код зубчатой матрицы - 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);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д