olmovc написав:Кожен рядок матриці A на першій і останній позиції містить індекси відповідно початку і кінця діапазону елементів рядка, які необхідно переписати у відповідний рядок матриці B. Створити матрицю B з необхідною кількістю стовпчиків у кожному рядку та переписати до неї вказані елементи з матриці A. Відсортувати кожен рядок матриці A за зростанням.
Ось такі були початкові умови якщо були зміни то напишіть Правильну умову задачі.
Умова залишилась такою ж,але,щоб вона виконувалась,потрібно,щоб значення першого елемента у кожному рядку матриці було меншим,ніж значення останнього елемента у рядку,а також,щоб їх значення не перевищували кількість елементів у рядку.Цю частину умови я зробила,ось код
using System;
namespace Ex06
{
class Program
{
static int[,] A;
static int[][] B;
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
// TODO: Implement Functionality Here
SetA();
ShowA();
//SetB();
//ShowB();
SortA();
ShowA();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
/// <summary>
/// Заповнити масив A
/// </summary>
static void SetA()
{
int rows, cols, fill;
Console.Clear();
Console.WriteLine("Введiть кiлькiсть рядкiв i стовпчикiв матрицi:");
cols = rows = int.Parse(Console.ReadLine());
//cols = int.Parse(Console.ReadLine());
A = new int[rows, cols];
// кількість рядків, кількість стовпчиків і коефіцієнт заповнення матриці A
//Console.WriteLine("Введiть коефiцiєнт заповнення матрицi (0...100 %):");
// fill = int.Parse(Console.ReadLine());
fill = 100;
Random Rnd = new Random();
// заповнення матриці випадковими числами із заданою щільністю
int fillcount = fill * rows * cols / 100, pos = 0;
while (pos < fillcount)
{
int rpos = Rnd.Next(A.GetLength(0));
int cpos = Rnd.Next(A.GetLength(1));
if (A[rpos, cpos] == 0)
{
A[rpos, cpos] = Rnd.Next(2, rows + 1);
++pos;
}
}
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
if (A[i, 0] > A[i, cols - 1])
{
int t = A[0, j];
A[i, 0] = A[i, cols - 1];
A[i, cols - 1] = t;
}
// else if (A[i, 0] == A[i, cols - 1])
// {
// SetB();
// }
// else SetB();
}
}
}
//static void SetB()
//{
// //int rows = A.GetLength(0);
// //int cols = rows;
// //int i = 0;
// //int a = A[i, cols] - A[i, 0];
// //for (i = A[i, 0]; i < a; i++)
// //{
// // for (int j = 0; j < cols; j++)
// // {
// // B[i][0] = A[i, A[i, 0] + i];
// // }
// //}
// int rowsCount = A.GetLength(0);
// B = new int[rowsCount][];
// int startPos = 0, endPos = 0;
// for (int i = 0; i < rowsCount; i++)
// {
// int colsCount = A.GetLength(1);
// startPos = A[i, 0];
// endPos = A[i, colsCount - 1];
// int lengthRowB = endPos - startPos;
// if ((lengthRowB < 1) || (lengthRowB > colsCount))
// {
// B[i] = new int[0];
// continue;
// }
// endPos--;
// startPos--;
// if ((endPos >= colsCount) || (startPos >= colsCount))
// {
// B[i] = new int[0];
// continue;
// }
// if ((endPos < 0) || (startPos < 0))
// {
// B[i] = new int[0];
// continue;
// }
// B[i] = new int[lengthRowB];
// int count = 0;
// for (int col = startPos; col < endPos; col++)
// {
// B[i][count] = A[i, col];
// //Console.WriteLine("r={0},B={1}",i,B[i][count]);
// count++;
// }
// }
//}
//<summary>
//вивід матриці на дисплей
//</summary>
static void ShowA()
{
// вивід матриці на дисплей
Console.WriteLine("Вмiст матрицi A:");
for (int i = 0; i < A.GetLength(0); i++)
{
for (int j = 0; j < A.GetLength(1); j++)
{
Console.Write("{0, 4}", A[i, j]);
}
Console.WriteLine();
}
}
//static void ShowB()
//{
// int cols = B.GetLength(1);
// int rows = B.GetLength(0);
// Console.WriteLine("---Матриця B--");
// for (int i = 0; i < rows; i++)
// {
// for (int j = 0; j < cols; j++)
// Console.Write("{0, 4}", B[i][j]);
// if (B[i].Length > 0)
// Console.WriteLine();
// }
// Console.WriteLine("---Матриця B--");
//}
static void SortA()
{
for (int i = 0; i < A.GetLength(0); i++)
{
int rowLength = A.GetLength(1);
int[] arrayRow = new int[rowLength];
for (int j = 0; j < rowLength; j++)
{
arrayRow[j] = A[i, j];
}
Array.Sort(arrayRow);
for (int j = 0; j < rowLength; j++)
{
A[i, j] = arrayRow[j];
}
}
}
}
}
а от переписати потрібні елементи у матрицю В мені так і не вдається.
наприклад,якщо матриця
А=3 4 5 3 2 6 5
4 5 6 2 1 1 4
5 4 3 2 2 1 6
то матриця В буде виглядати так
В=3 2 6
1
1 6