Если я понять, что вы хотите правильно:
Вы хотели бы принять вход N
, в вашем примере 4
, с этим - создать массив 4 х 4. Затем для каждого индекса в первом измерении попросите пользователя ввести значение, равное N
, число целых чисел, разделенных пробелами. Прочитайте этот ввод и поместите его в массив с соответствующим 2d-индексом. Так с 4
как первый вход, то пользователю будет предложено что-то вроде:
Please input 4 integers(separated by spaces):
Пользователь должен ввести, например:
Please input 4 integers(separated by spaces): 1 2 3 4
и нажмите клавишу ВВОД ,Опять же пользователю предлагается:
Please input 4 integers(separated by spaces): 1 2 3 4
Please input 4 integers(separated by spaces):
И так далее, пока:
Please input 4 integers(separated by spaces): 1 2 3 4
Please input 4 integers(separated by spaces): 2 3 4 5
Please input 4 integers(separated by spaces): 3 4 5 6
Please input 4 integers(separated by spaces): 4 5 6 7
Вы могли бы использовать что-то вроде следующего в этом случае:
class Program
{
static void Main(string[] args)
{
int size;
Console.WriteLine("Please enter the size of the matrix:");
if (!int.TryParse(Console.ReadLine(), out size))
{
Console.WriteLine("The value provided for the size was not a proper integer value.");
Console.WriteLine("Press ESC to quit...");
while (Console.ReadKey().Key != ConsoleKey.Escape) { }
return;
}
int[,] matrix = new int[size, size];
for (int i = 0; i < size; ++i)
{
bool complete = false;
while (!complete)
{
Console.WriteLine(string.Format("[{0}] - Please input {1} integers(separated by spaces):", i, size));
string[] input = Console.ReadLine().Split(' ');
if (input.Count() != size)
{
Console.WriteLine("The input was invalid, try again...");
continue;
}
for (int j = 0; j < size; ++j)
{
if (!int.TryParse(input[j], out matrix[i, j]))
{
complete = false;
Console.WriteLine("The input was invalid, try again...");
break;
}
complete = true;
}
}
}
Console.WriteLine("Output: \n");
WriteMatrix(matrix, size);
Console.ReadKey();
}
private static void WriteMatrix(int[,] matrix, int size)
{
string output = string.Empty;
for(int i = 0; i < size; ++i)
{
string line = string.Empty;
for (int j = 0; j < size; ++j)
line += string.Format("{0} ", matrix[i, j]);
output += string.Format("{0}\n", line.Trim());
}
Console.WriteLine(output);
}
}
T код выше должен быть в основном безопасным для пользователя, набирающего недопустимые значения, но вы, вероятно, потратите некоторое время, чтобы его очистить или улучшить. Основная идея есть.
Как «что-то не так» выражает себя? – SBI
Я думал, что логика правильная. И у меня нет ошибок сборки. Но вход не происходит. Cheers –
Следует отметить, что самый внутренний 'for-loop' выполняет итерацию над' k
gmiley