使用行增加数组

时间:2013-10-10 18:24:55

标签: c# arrays row

说我有一组数字:

int[] that = new [] {1, 2, 3, 2, 4, 8, 9, 7};

我正在尝试显示它们,以便增加的数字有自己的行。 例如,结果将是:

  

1 2 3

     

2 4 8 9

     

7

我可以使用

执行第一行
for (int i = 1; i < that.Length; i++) 
{
    if (that[i-1] < that[i]) 
    {
        Console.Write(that[i-1] + " ");
    }
}

事情是这适用于第一行,因为1-3正在增加但在此之后停止。 我不确定如何继续,以便写入2 4 8 9,然后是7。

4 个答案:

答案 0 :(得分:1)

我觉得这是作业,所以我要把实际编码留给你。但这是如何用简单的语言来做的:

  1. 有一个我们存储前一个值的变量。我们称之为oldValue,并以零开始(如果你只在数组中使用正数)。
  2. 一次浏览一个项目。
  3. 检查该数字是否大于oldValue。
  4. 如果为FALSE,则打印换行符。 C#中的“\ n”。
  5. 打印该号码并使oldValue等于该号码。
  6. 除非您的号码已完成,否则请转到下一个号码并转到第3步。

答案 1 :(得分:0)

您永远不会创建新行。

int[] arr = new[] {1, 2, 3, 2, 4, 8, 9, 7};

for(var i = 0; i < arr.Length; i++){
 if(i == 0 || ((i < arr.Length - 1) && arr[i] < arr[i + 1])){
  Console.Write(arr[i]);
 } else {
  Console.Write("{0}\n", arr[i]);
 } 
}

输出:

  

123
  2489
  7

几位评论:

  • 避免使用this作为变量名。这是保留的 关键词。
  • 使用\n作为换行符。

答案 2 :(得分:-1)

您可以通过多种方式执行此操作,方法是在字符串中附加字符,直到达到较小的字符串,然后使用Console.WriteLine()命令一次写入整个字符串,或者(更简单的方法)鉴于您的代码),只需测试新值小于前一个值并在文本中插入换行符。

// Start at zero
for (int i = 0; i < this.Length; i++) 
{
    // If this is not the first element in the array
    //   and the new element is smaller than the previous
    if (i > 0 && this[i] < this[i-1]) 
    {
        // Then insert a new line into the output
        Console.Write(Environment.NewLine);
    }
    Console.Write(this[i] + " ");
}

答案 3 :(得分:-1)

        int[] numbers = new int[] { 1, 2, 3, 2, 4, 8, 9, 7 };

        String orderedNumbers = String.Empty;

        for (int i = 0; i < numbers.Length; i++)
        {
            if (i == 0 || numbers[i] > numbers[i - 1])
            {
                orderedNumbers += numbers[i].ToString();
            }
            else
            {
                orderedNumbers += System.Environment.NewLine + numbers[i].ToString();
            }
        }

        MessageBox.Show(orderedNumbers);