几个月前,我开始学习C#和编程,并遇到了一些问题。这里的想法是创建一个二维数组(行/列的数量由用户添加),数字需要介于1到10之间。
然后,当创建数组时,数字序列( 3-5-7-9-11等)在第一列开始,在最后一列结束。列中的其余数字是由用户通过键盘从第一行开始添加的(忽略列1和最后一列,因为我们添加了该列)。
问题如下:
我现在所处的位置:
Console.WriteLine("Add row value of 1-10");
string s1
s1 = Console.ReadLine();
int k = int.Parse(s1);
Console.WriteLine("Add column value of 1-10");
string s2;
s2 = Console.ReadLine();
int p = int.Parse(s2);
int[,] M = new int[k, p];示例:我们添加了k(row) &p(库伦)值4,因此数组应该如下所示:
3 x 11
5 x 13
7 x 15
9 x 17
然后,应该再次手动添加X,而不覆盖现有数字的.The值。
发布于 2013-03-25 15:39:18
所以..。如果我做得对,你想问用户动态2d数组的“长度和宽度”吗?要检查输入的数字是否介于1到10之间,只有1种方法:
int [,] M;
if (k >= 1 && k <= 10 && p >= 1 && p <= 10)
{
M = new int[k,p];
}最好是在用户输入字符而不是数字的情况下执行int.TryParse(),否则您可以轻松地获得一个Exception。
填上数字:
int num = 3;
for (int i = 0; i < k; ++i)
{
M[i,0] = num;
num+=2;
}
for (int i = 0; i < k; ++i)
{
M[i,p] = num;
num+=2;
}这将在每行的第一列和最后一列中添加数字。之后,要手动填充其他单元格,您需要检查每个单元格,而不是第一列或最后一列。我希望我能正确理解你。提供的代码可以简化,但以这种方式提供,以更好地理解。
发布于 2013-03-25 15:57:36
if(k>0 && k<11 && p>0 && p<11)
{
int i;
int M[,] = new int[k,p];
for (i=0;i<k;i++)
{
M[i,0]=i*2+3;
M[i,p-1]=(i+k)*2+3;
}
}https://stackoverflow.com/questions/15618592
复制相似问题