Advertisement
elena1234

JaggedArrayManipulator

Dec 24th, 2020
477
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.92 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace JaggedArrayManipulator
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             int rows = int.Parse(Console.ReadLine());
  11.             double[][] jaggedArray = new double[rows][];
  12.             for (int row = 0; row < rows; row++) // read the jaggedArray
  13.             {
  14.                 double[] currentRow = Console.ReadLine().Split().Select(double.Parse).ToArray();
  15.                 jaggedArray[row] = currentRow;
  16.             }
  17.  
  18.             for (int row = 0; row < rows - 1; row++) // start analyzing the jaggedArray
  19.             {
  20.                 if (jaggedArray[row].Length == jaggedArray[row + 1].Length)
  21.                 {
  22.                     MultiplyEachElementInBothArrays(jaggedArray, row);
  23.                 }
  24.  
  25.                 else
  26.                 {
  27.                     DivideEachElementInBothArrays(jaggedArray, row);
  28.                 }
  29.             }
  30.  
  31.             while (true) // check for valid commands
  32.             {
  33.                 string command = Console.ReadLine();
  34.                 if (command == "End")
  35.                 {
  36.                     foreach (double[] currentRow in jaggedArray)
  37.                     {
  38.                         Console.WriteLine(string.Join(" ", currentRow));
  39.                     }
  40.  
  41.                     break;
  42.                 }
  43.  
  44.                 string[] commandArray = command.Split().ToArray();
  45.                 int row = int.Parse(commandArray[1]);
  46.                 int col = int.Parse(commandArray[2]);
  47.                 int value = int.Parse(commandArray[3]);
  48.                 if (commandArray[0] == "Add" && row >= 0 && row <= rows - 1 && col >= 0 && col <= jaggedArray[row].Length - 1)
  49.                 {
  50.                     jaggedArray[row][col] += value;
  51.                 }
  52.  
  53.                 else if(commandArray[0] == "Subtract" && row >= 0 && row <= rows - 1 && col >= 0 && col <= jaggedArray[row].Length - 1)
  54.                 {
  55.                     jaggedArray[row][col] -= value;
  56.                 }
  57.             }
  58.         }
  59.  
  60.  
  61.         private static void DivideEachElementInBothArrays(double[][] jaggedArray, int row)
  62.         {
  63.             for (int i = 0; i < jaggedArray[row].Length; i++)
  64.             {
  65.                 jaggedArray[row][i] = jaggedArray[row][i] / 2;
  66.             }
  67.  
  68.             for (int i = 0; i < jaggedArray[row + 1].Length; i++)
  69.             {
  70.                 jaggedArray[row + 1][i] = jaggedArray[row + 1][i] / 2;
  71.             }
  72.         }
  73.  
  74.         private static void MultiplyEachElementInBothArrays(double[][] jaggedArray, int row)
  75.         {
  76.             for (int i = 0; i < jaggedArray[row].Length; i++)
  77.             {
  78.                 jaggedArray[row][i] = jaggedArray[row][i] * 2;
  79.             }
  80.  
  81.             for (int j = 0; j < jaggedArray[row + 1].Length; j++)
  82.             {
  83.                 jaggedArray[row + 1][j] = jaggedArray[row + 1][j] * 2;
  84.             }
  85.         }
  86.     }
  87. }
  88.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement