首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二维数组,将其值添加到奇怪的模式中。

二维数组,将其值添加到奇怪的模式中。
EN

Stack Overflow用户
提问于 2013-03-25 15:25:28
回答 2查看 320关注 0票数 0

几个月前,我开始学习C#和编程,并遇到了一些问题。这里的想法是创建一个二维数组(行/列的数量由用户添加),数字需要介于1到10之间。

然后,当创建数组时,数字序列( 3-5-7-9-11等)在第一列开始,在最后一列结束。列中的其余数字是由用户通过键盘从第一行开始添加的(忽略列1和最后一列,因为我们添加了该列)。

问题如下:

  • 检查行/列数是否介于1和10之间的最佳方法是什么?(我在想,如果-难道没有更好的办法吗?)
  • 如何使数字序列3-5-7等在第一列开始并在最后一栏中结束?是的,我感到迷茫。

我现在所处的位置:

代码语言:javascript
复制
        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值。

EN

回答 2

Stack Overflow用户

发布于 2013-03-25 15:39:18

所以..。如果我做得对,你想问用户动态2d数组的“长度和宽度”吗?要检查输入的数字是否介于1到10之间,只有1种方法:

代码语言:javascript
复制
int [,] M;

if (k >= 1 && k <= 10 && p >= 1 && p <= 10)
{
    M = new int[k,p];
}

最好是在用户输入字符而不是数字的情况下执行int.TryParse(),否则您可以轻松地获得一个Exception

填上数字:

代码语言:javascript
复制
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;
}

这将在每行的第一列和最后一列中添加数字。之后,要手动填充其他单元格,您需要检查每个单元格,而不是第一列或最后一列。我希望我能正确理解你。提供的代码可以简化,但以这种方式提供,以更好地理解。

票数 0
EN

Stack Overflow用户

发布于 2013-03-25 15:57:36

代码语言:javascript
复制
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;
 }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15618592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档