题目如图
解法1:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] array = new int[100];
//标记0的下标
int flag = 0;
for (int i = 0; i < arr.length; i++) {
array[i] = input.nextInt();
if (array[i] == 0) {
flag = i;//确定0的下标
i = arr.length;
break;
}
}
//数组倒序输出,长度为0下标减1即从0前一位输出
for (int i = flag - 1; i >= 0; i--) {
System.out.print(array[i] + " ");
}
}
}
采用数组
如果要存放多个对象,可以使用数组,但是数组有局限性
比如 声明长度是100的数组,不用的数组就浪费了,超过100的个数,又放不下。
解法2:
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
public class zero {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//ArrayList容器的容量"capacity"会随着对象的增加,自动增长
ArrayList<Integer> number=new ArrayList<Integer>();
for(int i=0;i<100;i++) {
number.add(input.nextInt());
if(number.get(i)==0) {
break;
}
}
//ArrayList类借助Collections工具类实现反转
Collections.reverse(number);
//for-each实现数组打印动态数组number
for(Integer a:number) {
//a=0跳出for-each循环实现不输出0的效果
if(a==0)
continue;
System.out.print(a+" ");
}
}
}