我正在为学校编写C#中的一些代码。但这项练习令人头疼。
就是这样:我必须开发一个代码,允许用户从键盘为2D数组(5x5)设置一个值(放入x)。这意味着在运行程序时,用户应该能够在数组中设置一个值,例如“I wana set an”x“in 2,5 and 3,1”。我不知道该怎么做。已经两周了,但我无法理解。
这是我到目前为止(更新,thnx到所有,特别是BradleyDotNET支持):
int[,] data = new int[5, 5];
public void load()
{
string[] input = Console.ReadLine().Split('=');
string[] coordinates = input[0].Split(',');
int[] intCoordinates = coordinates.Select(s => int.Parse(s)).ToArray();
data[intCoordinates[0]][intCoordinates[1]] = int.Parse(input[1]);
}
public void view()
{
Console.WriteLine("Matrix created is:");
for (int i = 0; i <= 4; i++)
{
Console.Write("\n");
for (int j = 0; j <= 4; j++)
{
Console.Write(data);
}
}
Console.ReadKey();
}
static void Main(string[] args)
{
Program objeto = new Program();
objeto.load();
objeto.view();
Console.ReadKey();
Console.Clear();
我还必须添加一个功能,让用户可以根据需要为matriz添加尽可能多的“x”,但我计划用“切换”来实现。
那么,如何在键盘内设置2d数组中的值?
更新:我在这里遇到的错误在第10行,在“数据”中。它说“预期[] .2中的索引编号不正确”
答案 0 :(得分:1)
你没有指定输入的格式,所以我会做一个。如果输入是“2,4 = 10”(意思是设置元素[2] [4]到10),代码将是:
string[] input = Console.ReadLine().Split('=');
string[] coordinates = input[0].Split(',');
int[] intCoordinates = coordinates.Select(s => int.Parse(s)).ToArray();
matrix[intCoordinates [0]][intCoordinates [1]] = int.Parse(input[1]);
这段代码有一些问题,没有范围验证,如果用户输入的不是int,它会抛出。我会把这些作为练习留给你,但你可以随意问你是否遇到了麻烦。
为了解释,我们使用Console.ReadLine
来获得整行输入。然后我们在'='字符上打破它以获得我们的坐标和期望值。然后我们在','上分割坐标以获得不同的索引。
你不能使用字符串作为数组索引,所以我们调用Select
来调用每个字符串的int.Parse()函数,返回一个新的int数组。
最后,我们使用已解析的索引来索引matrix
并将其设置为输入中的已解析值。
答案 1 :(得分:0)
这样的事情可以帮助你。
public void load()
{
for (int i = 0; i <= 4; i++)
{
for (int j = 0; j <= 4; j++)
{
Console.WriteLine("enter value for {0},{1}", i, j);
matrix[i,j]= int.Parse(Console.ReadLine());
}
}
}
BTW,在view
方法中,从0 to 4