本帖最后由 a840295276 于 2012-02-14 18:27:42 编辑

解决方案 »

  1.   


    //导入语句,引入Java.util包中的所有的工具类
    import java.util.*;//创建一个类名称为Example2_4
    public class Example2_4 {
    //Main 方法,是这个程序的入口函数,主方法
    public static void main(String args[]) {
    //创建一个文本的扫描器,作用是扫描系统传入的文本,System.in是这个扫描器的构造方法要传入的参数
    Scanner reader = new Scanner(System.in);
    //创建一个双精度类型的小数值 b,用来保存输入的双精度小数值的和
    double a = 0;
    //创建一个整形的变量a,作为一个计数器
    int b = 0;
    //进入循环,当扫描器里面有下一个值的话(作为步进)
    while (reader.hasNextDouble()) {
    //将扫描器接收的值保存到double类型的变量c中
    double c = reader.nextDouble();
    //将变量b的值+1
    b = b + 1;
    //将变量a的值加上变量c的值,赋值给a
    a = a + c;
    }
    //输出语句 %d 代表整形  %f 代表浮点型
    System.out.printf("%d 个数的和为%f\n", b, a);
    //输出语句
    System.out.printf("%d 个数的平均值是%f\n", b, a / b);
    }
      

  2.   

    //导入了java自带的util【工具包】
    import java.util.*;
    //创建一个类名称为Example2_4
    public class Example2_4
    {
    //每个程序都有个入口、这段话就是整个程序的入口、
    //public 公开  static 静态   void 默认返回类型      main主程序
    //String 字符串类型    args[]  一维数组
    //连起来就是程序刚启动的时候被优先生成出来了、
    //还是死记这段程序入口代码吧
    public static void main(String args[])
    {//从系统输入获取输入的字符串
    Scanner reader=new Scanner(System.in);
    //声明一个双精度类型的 a 赋初始值为0
    double a=0;
    //声明一个整形变量b 赋初始值为0
    int b=0;
    //while是个循环 ()里面是条件
    //当reader(指的是从系统输入流中获取的字符串中有double类型的数据)
    while(reader.hasNextDouble())
    {
    //新创建一个局部双精度的变量c 赋初始值从nextDouble()中获取【是下一个双精度么?】
    double c=reader.nextDouble();
    //b+1的值赋给了b   【整形 + 整形  最后变整形、没有涉及到强制转换】
    b=b+1;
    【双精度+双精度 最后变双精度   没有涉及强制转换】
    a=a+c;
    }
    //System.out.printf();【是系统输出流】
    // %d  是按整形类型输出【其实是输出的是b值】  %f 是按浮点数类型输出【输出的是a的值】  
    System.out.printf("%d 个数的和为%f\n",b,a);
    // %d  是按整形类型输出【其实是输出的是b值】  %f 是按浮点数类型输出【输出的是a除以b的值,双精度】  
    System.out.printf("%d 个数的平均值是%f\n",b,a/b);
    }
    } 【其实我也不知道我说的对不对、很多地方说的不对、很多地方是蒙的、让其他大神带你吧、我当做是抛砖引玉了、】