代码之家  ›  专栏  ›  技术社区  ›  Nithin Prasad

将数组A中的所有N个整数按相反顺序打印为一行空格分隔的整数

  •  2
  • Nithin Prasad  · 技术社区  · 6 年前

    我正在尝试编写一个程序,该程序将反转一个数组,并将其打印在一行中,其中每个元素之间用一个空格分隔 array

    我的代码:

    static int[] reverseArray(int[] array) {
        int end = array.length-1;
        for(int i=end; i>=0; i--) {
            a[i] = a[i] + " ";
        }
        return String.valueOf(a);
    }
    

    上面的代码向我抛出了一个错误,表示:

    incompatible types: String cannot be converted to int[]
    

    样本输入:

    1 4 3 2
    

    示例输出:

     2 3 4 1
    
    8 回复  |  直到 6 年前
        1
  •  2
  •   Squarepoint    6 年前

    作为启动器,变量 a 未定义,因此需要这样的声明:

    int[] a = new int[array.length];
    

    然后,在循环中,不能将字符串分配给int数组的元素 A. 。 此外,该方法返回一个数组,而不是 String ,因此无需使用 一串 操作。

    实现该方法的一种方法是 for 循环,则为:

    static int[] reverseArray(int[] array) {
        int[] a = new int[array.length];
        int end = array.length - 1;
        for (int i = end; i >= 0; i--) {
            a[i] = array[end - i];
        }
        return a;
    }
    
        2
  •  0
  •   Sagar Pudi    6 年前
     a[i] = a[i] + " ";
    

    这就是你做错的地方。此处数组 a[] 是一种int类型,您试图在其中保存字符串。

    return String.valueOf(a);
    

    在这一行中,您也在尝试存储一个数组对象。这将不会返回您预期的结果。

        3
  •  0
  •   Schidu Luca    6 年前

    您的代码包含一些错误:

    1. 在哪里 a 是从哪里来的?它是什么类型的?
    2. 你的方法说它返回 int[] 但您尝试返回一个字符串,保持一致。

    以下是您的代码的修改版本:

        static String reverseArray(int[] array) {
            String result = "";
            int end = array.length-1;
            for(int i=end; i>=0; i--) {
                result += array[i] + " ";
            }
            return result;
        }
    
        4
  •  0
  •   Bentaye    6 年前
    static int[] reverseArray(int[] array) {
        int end = array.length-1;
        int a = new int[array.length];
        for(int i=end; i>=0; i--) {
            a[end - i] = array[i];
        }
        return a;
    }
    
        5
  •  0
  •   Mehul Sancheti    4 年前

    您还可以创建另一个数组,并使用while循环将元素存储在另一个数组中,然后打印第二个数组。 以下是我尝试的方法:

    int[] revArr = new int[n];
    int i = n-1;
    int j = 0;
    while(i>=0) {
         while(j<n-i){
             revArr[j] = arr[i];
             System.out.print(revArr[j] +" ");
             j++;
         }
    i--;
    }
    
        6
  •  0
  •   ABHISHEK MULIK    4 年前
    #Aray reversing in python
    
    #!/bin/python3
    
    if __name__ == '__main__':
        n = int(input())
        arr = list(map(int, input().rstrip().split()))
        lst_ele=len(arr)
        for i in range(len(arr)):
            lst_ele-=1
            print(arr[lst_ele],end=' ')
                
        
        
            
    
        7
  •  0
  •   double-beep Alien Li    4 年前

    此代码适用于Python 3:

    if __name__ == '__main__':
        n = int(input())
        arr = list(map(int, input().rstrip().split()))
        k = len(arr)
        for i in range(0,int(k)):
            k-=1
            print(arr[k], end=' ')
    

    如果没有,请确保缩进正确。

        8
  •  0
  •   Neha Gawhane    3 年前

    更优化的版本可以是:

    for i in reversed(range (0, len(arr))):
        print(arr[i], end=' ')