【问题标题】:Starting with the lowest value, print each value in a circular array从最小值开始,在循环数组中打印每个值
【发布时间】:2016-09-02 13:32:34
【问题描述】:

我有这种情况:

int[] array = new int[] {7, 5, 6}

我的索引 i 的值为 1,它指向我假设的循环列表的头部。零位的值“7”就是尾巴。

我的目标是打印:

5,6,7

我需要一个特定的结构还是可以用一个简单的数组来做?

【问题讨论】:

标签: c# arrays


【解决方案1】:

使用单个“for”循环和模运算符:

int[] array = new int[] {7, 5, 6};

int start = 1;

for (int idx=0; idx<array.Length; idx++)
  Console.Write(array[(idx+start) % array.Length]);

【讨论】:

    【解决方案2】:

    没有什么是开箱即用的,但是下面会环绕数组。

            int[] array = new int[] { 7, 5, 6 };
            int startPosition = 1;
            string result = "";
    
            // Run from the start position to the end of the array
            for (int i = startPosition;  i < array.Length; i++)
            {
                result += array[i] + ",";
            }
    
            // Wrapping around, run from the beginning to the start position
            for (int i = 0; i < startPosition; i++)
            {
                result += array[i] + ",";
            }
    
            // Output the results
            result = result.TrimEnd(',');
            Console.WriteLine(result);       
            Console.Read();
    

    【讨论】:

      【解决方案3】:

      如果你想打印 5,6,7,你可以使用:

      int printIndex = 1;
      for(int i = 0; i < array.Length; i++)
      {
           print(print(array[printIndex].ToString());
           printIndex++;
           if(printindex >= array.Length)
                printindex = 0;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-28
        • 1970-01-01
        • 2016-10-06
        • 1970-01-01
        • 2021-08-13
        • 2022-01-23
        • 2013-09-30
        • 1970-01-01
        相关资源
        最近更新 更多