【问题标题】:Printing elements of array called top10 backwards向后打印名为 top10 的数组元素
【发布时间】:2018-11-27 20:28:27
【问题描述】:

我正在尝试编写代码来向后打印名为 top10 的数组的元素。这会怎么样?任何事情都会很棒,因为我不知道如何开始。

【问题讨论】:

  • 通过设置初始索引 = 9 从最后 10 个开始,for (var i = array.length-1; i >= 0 ; i--) console.log(array[i])
  • 您从0 开始并循环到9 并以相反的顺序请求索引(即top10[top10.length - index - 1] 或者您可以从9 循环到0 打印每个元素。采取查看The for Statement了解更多详情

标签: java arrays


【解决方案1】:

我在这里编写了用于向后打印名为 top10 的数组的元素的代码。您可以通过 PHP、C++、Python 等其他语言找到大量资源。

public class GFG { 
          /* Function to reverse arr[] from  
            start to end*/
            static void rvereseArray(int arr[], 
                            int start, int end) 
            { 
                int temp; 

                while (start < end) 
                { 
                    temp = arr[start];  
                    arr[start] = arr[end]; 
                    arr[end] = temp; 
                    start++; 
                    end--; 
                }  
            }      

            /* Utility that prints out an 
            array on a line */
            static void printArray(int arr[],  
                                    int size) 
            { 
                for (int i = 0; i < size; i++) 
                     System.out.print(arr[i] + " "); 

                 System.out.println(); 
            }  

            // Driver code 
            public static void main(String args[]) { 

                int arr[] = {1, 2, 3, 4, 5, 6}; 
                printArray(arr, 6); 
                rvereseArray(arr, 0, 5); 
                System.out.print("Reversed array is \n"); 
                printArray(arr, 6);  

            } 
        } 

在这里我也建议你向极客学习,以及other programming blogs

【讨论】:

    【解决方案2】:

    要反转一个 int 数组,您需要向上交换项目直到到达中点,如下所示:

    for(int i = 0; i < validData.length / 2; i++)
    {
        int temp = validData[i];
        validData[i] = validData[validData.length - i - 1];
        validData[validData.length - i - 1] = temp;
    }
    

    这里取自另一个问题:

    How do I reverse an int array in Java?

    我认为这是您需要的。您只需将其反转,然后使用如下函数迭代并打印前 10 个:

        int[] myarray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
    
        for (int element: myarray) {
            System.out.println(element);
        }
    

    所以,残局应该是这样的:

    int[][] myarray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
    for(int i = 0; i < myarray.length / 2; i++)
    {
        int[] temp = myarray[i];
        myarray[i] = myarray[myarray.length - i - 1];
        myarray[myarray.length - i - 1] = temp;
    }
    // array reversed
    int x = 0;
    for (int[] element: myarray) {
        System.out.println(element);
        x++;
        if (x == 10) {
            break;
        }
    }
    // array printed
    

    使用int[] element: myarray 为我提供了数组中的所有项目,break 在您到达第 10 个时停止打印循环,如果您不这样做,它仍然会在您用完项目时停止(例如只需 9)

    如果您的数组是多维的,您可以只嵌套 for 循环来迭代内部级别,或者使用来自 java.util.Arrays;Arrays.toString(myarray) 函数

    打印数组取自:Java Program to Print an Array - Programiz

    希望对您有所帮助。 (如果我犯了错误,我很高兴得到纠正)

    【讨论】:

    • 非常感谢您的帮助。这对我很有帮助,我的决赛将在 24 小时内完成,再次感谢您。
    【解决方案3】:

    看起来像这样:

    int topTenBackwards[] = new int[] {1,2,3,4,5,6,7,8,9,10};
       for(int i = topTenBackwards.length - 1; i >= 0 ; i--) {
                    System.out.println(topTenBackwards[i]);
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-23
      • 2022-11-14
      • 2014-10-29
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多