Kullanıcıdan girdi alın ve 2D dizi oluşturun

0

Soru

Kullanıcıdan girdi almak ve kullanıcının değerleri iki satırda girdiği şekilde 2D dizisi oluşturmak istiyorum. Önce kullanıcı boşluklarla ayrılmış değerleri tanımlar, ardından enter tuşuna basar ve örnekte aşağıda gösterildiği gibi boşlukları ayıran başka değerler de verir:

Değerler ver:

2 3 4
5 6 7

değişkenin sonunda buna sahip olması gerekir:

[[2, 3, 4], [5, 6, 7]]

Başka bir örnek:

Değerler ver:

1 2
3 4

değişkenin sonunda buna sahip olması gerekir:

[[1, 2], [3, 4]]
c#
2021-11-24 06:06:06
1

En iyi cevabı

2

Bunu neden bu kadar karmaşık hale getirdiğini gerçekten bilmiyorum, ama al bakalım:

Console.Write("Please insert values separated by white-space: ");
string userInputLine1 = Console.ReadLine();
Console.Write("Please insert values seperated by white-space again: ");
string userInputLine2 = Console.ReadLine();

string[] userInputLine1Splitted = userInputLine1.Split(" ");
string[] userInputLine2Splitted = userInputLine2.Split(" ");

// Either this or catch an out-of-boundary exception when one is larger than the other and fill the space with 0's or something else.
if (userInputLine1Splitted.Length != userInputLine2Splitted.Length)
{
  throw new Exception("Both 1d arrays need to be the same length!");
}

int lengthOfArray = userInputLine1Splitted.Length;

// Since we  always have only 2 rows this can be hardcoded.
int[,] TwoDArrayFromUserInput = new int[2, lengthOfArray]; 

for (int col = 0; col < lengthOfArray; col++)
{
  TwoDArrayFromUserInput[0, col] = Convert.ToInt32(userInputLine1Splitted[col]);
  TwoDArrayFromUserInput[1, col] = Convert.ToInt32(userInputLine2Splitted[col]);
}

// Print to console to prove it worked.
for (int row = 0; row < 2; row++)
{
  for (int col = 0; col < lengthOfArray; col++)
  {
    Console.Write(TwoDArrayFromUserInput[row, col] + " ");
  }

  Console.WriteLine();
}

Kullanım durumunuzu belirtebilirseniz, daha iyi bir çözüm bulmanıza yardımcı olabileceğime eminim.

2021-11-24 06:43:48

neden karmaşık olduğunu söyledin? Görevler konsoldan 2D dime dizisi almaktır. Bunun nesi yanlış?
Arie

Belki de" karmaşık " yanlış kelimeydi. Ancak kullanım durumuna bağlı olarak, 2 boyutlu bir dizi oluşturmak için 2 1D dizisini bir tür arabellek olarak kullanmaktan çok daha iyi alternatifler vardır.
Axs

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................