java动态数组反向输出

    int[] a = new int[7];
    int i,temp;
    Scanner sc =  new Scanner(System.in);
    System.out.println("请输入七个数");
    for(i=0;iSystem.out.println("交换前:");
        for(i=0;iSystem.out.println(a[i]+"\t");
        System.out.println();
        for(i=0;itemp=a[i];
            a[i]=a[a.length-i-1];
            a[a.length-i-1]=temp;
        }
        System.out.println("交换后:");
        for(int x:a)
            System.out.println(x+"\t");
        System.out.println();
    }

参考一下

import java.util.Scanner;

public class ReverseNumbersExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[] numbers = new int[7];

        System.out.println("Please enter 7 numbers:");

        // Read 7 numbers from the console
        for (int i = 0; i < 7; i++) {
            numbers[i] = scanner.nextInt();
        }

        // Print the numbers in reverse order
        System.out.println("Numbers in reverse order:");
        for (int i = 6; i >= 0; i--) {
            System.out.println(numbers[i]);
        }
    }
}


你这是输出接收都写一个for里边了么,接收值跟输出单独放外边,改了下,试试

img

img

 int[] a = new int[7];
            int i,temp;
            Scanner sc =  new Scanner(System.in);
            System.out.println("请输入七个数");
            for(i=0;i<a.length;i++)
            {
                a[i]=sc.nextInt();
               
            }
            System.out.println("交换前:");
            for(i=0;i<a.length;i++)
                System.out.println(a[i]+"\t");
            System.out.println();
            for(i=0;i<a.length/2;i++)
            {
                temp=a[i];
                a[i]=a[a.length-i-1];
                a[a.length-i-1]=temp;
            }
            System.out.println("交换后:");
            for(int x:a)
                System.out.println(x+"\t");
            System.out.println();

是要实现这样的效果吗

        int[] a = new int[7];
        int i;
        Scanner sc =  new Scanner(System.in);
        System.out.println("请输入七个数");
        for(i=0;i<a.length;i++)
        {
            a[i]=sc.nextInt();
        }
        System.out.println("交换前:");
        for(i=0;i<a.length;i++)
            System.out.print(a[i]+"\t");
        System.out.println();
        System.out.println("交换后:");
        for(i=a.length - 1;i>=0;i--)
        {
            System.out.print(a[i]+"\t");
        }
        System.out.println();

运行结果:

请输入七个数
5 2 8 3 9 6 1
交换前:
5    2    8    3    9    6    1    
交换后:
1    6    9    3    8    2    5
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7412641
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Java数组逆序输出
  • 除此之外, 这篇博客: java将 数组反序输出中的 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

  • System.out.println(reverseOrderArray(数组名));
    输出:[I@15db9742
    [ --> 代表数组, I–>代表int类型的数组, @之后的内容:代表的是内存地址

  • 您还可以看一下 颜群老师的Java基础入门课程中的 数组小节, 巩固相关知识点