编写Javaapplication程序,定义app2 从标准输入读入n个整数,存入整型数组a中,然后逆序输出这些整数,输出该数组的所有数据的平均值

解决方案 »

  1.   


    import java.util.Scanner;
    public class Main {
    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    //输入要输入的数字的个数,并定义数组
    System.out.println("请输入要输入的数字个数:");
    int n = input.nextInt();
    int[] a = new int[n];
    long sum = 0;//保存n个数的和

    //输入n个数,并计算这n个数的总和
    for(int i=0; i<a.length; i++) {
    a[i] = input.nextInt();
    sum += a[i];
    }

    //逆序输出
    for(int i=a.length-1; i>=0; i--) {
    System.out.print(a[i] + " ");
    }
    System.out.println();

    //打印n个数的平均数
    System.out.println("输入的" + n + "个数的平均数为:" + (double)sum / n );
    }
    }用数组保存输入的数字,其实完全可以用集合来保存输入的数字。下面就写个用集合版的。
      

  2.   


    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.InputMismatchException;
    import java.util.List;
    import java.util.Scanner;
    public class T {
    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    //定义ArrayList来保存输入的数字
    List<Integer> list = new ArrayList<Integer>();
    long sum = 0;//保存n个数的和

    //输入n个数,并计算这n个数的总和,输入quit结束
    System.out.println("输入n个数,输入quit结束:");
    boolean flag = true;
    int num;
    while(flag) {
    try {
    num = input.nextInt();
    list.add(num);
    sum += num;
    } catch(InputMismatchException e) {
    //输入的不是整数的时候会抛出该异常,在抛出异常的时候,接收输入的字符串,
    //并判断是否为quit,是则结束,否则的话忽略掉输入的内容,然后继续
    String str = input.next();
    if(str.equalsIgnoreCase("quit")) {
    flag = false;
    }
    }
    }

    //翻转List,并输出List的元素
    Collections.reverse(list);
    for(Integer i : list) {
    System.out.print(i + " ");
    }
    System.out.println();

    //打印n个数的平均数
    if(list.size() <= 0) {
    System.out.println("没有输入任何数!");
    return;
    }
    System.out.println("输入的" + list.size() + "个数的平均数为:" + (double)sum / list.size() );
    }
    }因为输入的内容可以重复,并且有序,所以考虑使用ArrayList。