Advertisement
ElviraPetkova

JaggedArray

Oct 2nd, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.11 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace MultidimentionalArrays__JaggedArrayManipulator
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             int n = int.Parse(Console.ReadLine());
  11.             double[][] jaggedArray = new double[n][];
  12.  
  13.             //Първо трябва да напълним назъбения масив със стойностите, които ще ни подадат от конзолата.
  14.  
  15.             for (int row = 0; row < n; row++)
  16.             {
  17.                 jaggedArray[row] = Console.ReadLine()
  18.                     .Split(" ")
  19.                     .Select(double.Parse)
  20.                     .ToArray();
  21.             }
  22.            
  23.             //Преди да добавяме или премахваме стойности, трябва да анализираме матрицата, и въз основа на началните стойности
  24.             //да умножаваме или делим. Затова и назъбения масив трябва да е със стойности от тип double, а не int,
  25.             //защото при делене се получава double число.
  26.  
  27.             for (int i = 0; i < jaggedArray.GetLength(0); i++)
  28.             {
  29.                 int currentRowLenght = jaggedArray[i].Length;
  30.                 int nextRowLenght = int.MinValue;
  31.  
  32.                 if (i + 1 < jaggedArray.GetLength(0))
  33.                 {
  34.                     nextRowLenght = jaggedArray[i + 1].Length;
  35.  
  36.                     if (currentRowLenght == nextRowLenght)
  37.                     {
  38.                         for (int j = 0; j < jaggedArray[i].Length; j++)
  39.                         {
  40.                             jaggedArray[i][j] *= 2;
  41.                             jaggedArray[i + 1][j] *= 2;
  42.                         }
  43.                     }
  44.                     else
  45.                     {
  46.                         for (int j = 0; j < jaggedArray[i].Length; j++)
  47.                         {
  48.                             jaggedArray[i][j] /= 2;
  49.                         }
  50.                         for (int j = 0; j < jaggedArray[i + 1].Length; j++)
  51.                         {
  52.                             jaggedArray[i + 1][j] /= 2;
  53.                         }
  54.                     }
  55.                 }
  56.             }
  57.  
  58.             string input = Console.ReadLine();
  59.  
  60.             while (input.ToLower() != "end")
  61.             {
  62.                 string[] command = input
  63.                     .Split(" ", StringSplitOptions.RemoveEmptyEntries)
  64.                     .ToArray();
  65.                 if (command[0].ToLower() == "add")
  66.                 {
  67.                     int row = int.Parse(command[1]);
  68.                     int col = int.Parse(command[2]);
  69.                     double value = double.Parse(command[3]);
  70.  
  71.                     //При проверка за валидност трябва да се включи col >= 0 (тъй като може да е отрицателно число),
  72.                     //и също row < jaggedArray.GetLength(0), а не row <= jaggedArray.GetLength(0) (при дължина 5,
  73.                     //посления валиден индекс за row ще е 4, а не 5), същото и за проверката за col.
  74.  
  75.                     if (row >= 0 && row < jaggedArray.GetLength(0) && col < jaggedArray[row].Length && col >= 0)
  76.                     {
  77.                         jaggedArray[row][col] += value;
  78.                     }
  79.  
  80.                 }
  81.                 else if (command[0].ToLower() == "subtract")
  82.                 {
  83.                     int row = int.Parse(command[1]);
  84.                     int col = int.Parse(command[2]);
  85.                     double value = double.Parse(command[3]);
  86.  
  87.                     if (row >= 0 && row < jaggedArray.GetLength(0) && col < jaggedArray[row].Length && col >= 0)
  88.                     {
  89.                         jaggedArray[row][col] -= value;
  90.                     }
  91.                 }
  92.  
  93.                 input = Console.ReadLine();
  94.             }
  95.  
  96.             foreach (var row in jaggedArray)
  97.             {
  98.                 Console.WriteLine(string.Join(" ", row));
  99.             }
  100.  
  101.         }
  102.     }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement