1.求平均数:用户循环输入任意个非0的数,输入0循环退出,系统计算并显示这些数的平均数。(必须用do-while)
  import java.util.*;
  public class Hello {
     public static void main(String[] args){
     double num;
     double sum=0.0;
     double avg=0.0;
     int i=0;
     do{
     System.out.println("请输入数字:");
     Scanner input=new Scanner(System.in);
     num=input.nextDouble();
     i++;
     if(i!=0)
        sum=sum+num;
     }while(num!=0);
     if (i!=0)
        avg=sum/i;
     System.out.println("共输入"+(i-1)+"个数");
     System.out.println("他们的和是:"+sum);
     System.out.println("他们的平均数是:"+avg);
     }
}2.编写一个聊天机器人(自动和人聊天的程序)小P,你说:“你好!”他回答:“你好,我是小P,你是谁啊?”你说:“我是令狐冲。”他说:“你终于回来了啊!好想你哦”,你说:“再见”,他说:“再见,下次还找我来玩哦!”。如果你说的话不在“你好”,“再见”,“我是令狐冲”这三句话之内,那么小P说“对不起,我不知道你说什么”,如果你说:“再见”小P回答:“再见,下次再来玩哦”之后循环退出,程序结束.
以下是我编的程序:当我输入你好,他还是显示,我不懂你在说什么。
  import java.util.*;
  public class Hello {
     public static void main(String[] args){
     String answer;
     do{
     System.out.println("你说:");
     Scanner input=new Scanner(System.in);
     answer=input.next();
     if(answer.equals("你好")){
         System.out.println("你好,我是小P,你是谁啊?");
    }else if(answer.equals("我是令狐冲")){
         System.out.println("你终于回来了!好想你哦!");
    }else if(answer.equals("再见")){
         System.out.println("再见,下次还找我来玩哦!");
    }else {
         System.out.println("对不起,我不懂你在说什么");
   }
    }while(!answer.equals("再见"));
  }
}3.李白无事上街走,提壶去买酒,遇店加一倍,遇花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原来有多少斗酒?(使用FOR循环结构实现编程)

解决方案 »

  1.   

     System.out.println("请输入数字:"); 
        Scanner input=new Scanner(System.in); 
        num=input.nextDouble(); 
        i++; //i++之后i怎么也不回等于0是吧???你这样无法跳出循环!!
        if(i!=0) 
            sum=sum+num; 
        }while(num!=0); 
        if (i!=0) 
            avg=sum/i; 
      

  2.   

    第一题:
    if (i!=0) 
          avg=sum/(i+1);
      

  3.   

    上面错了:
    第一题: 
    if (i!=0) 
          avg=sum/(i-1);
      

  4.   

    第一题直接avg=sum/(i-1);
    从do while出来后i不可能为0
      

  5.   

    第二题,我在我的机子上编译时有一个非法字符,("对不起,我不懂你在说什么";  这个括号是全角的,改了之后程序没有问题啊;我的运行结果如下:
    F:\java>java Hello
    你说:
    你好
    你好,我是小P,你是谁啊?
    你说:
    再见
    再见,下次还找我来玩哦!
      

  6.   

    System.out.println("对不起,我不懂你在说什么"); 我把你代码复制到我这边可以正常运行的阿。但是这句话的括号出错 我改了下就可以了。
      

  7.   

    第一题:
            double num; 
            double sum=0.0; 
            double avg=0.0; 
            int i=0; 
            do{ 
            System.out.println("Please input number:"); 
            Scanner input=new Scanner(System.in); 
            num=input.nextDouble();         if(num!=0){ 
                sum=sum+num; 
                i++;
            }
            }while(num!=0);
     
            if (i!=0) 
                avg=sum/i;         System.out.println("Total number of input: "+i);         System.out.println("Sum is: "+sum); 
            System.out.println("Avg is: "+avg); 
            } 
      

  8.   

    第一题直接avg=sum/(i-1);
    从do while出来后i不可能为0
    中间也不用if(i!=0) 
    初始值为0  i++后i不可能为0