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循环结构实现编程)
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循环结构实现编程)
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;
if (i!=0)
avg=sum/(i+1);
第一题:
if (i!=0)
avg=sum/(i-1);
从do while出来后i不可能为0
F:\java>java Hello
你说:
你好
你好,我是小P,你是谁啊?
你说:
再见
再见,下次还找我来玩哦!
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);
}
从do while出来后i不可能为0
中间也不用if(i!=0)
初始值为0 i++后i不可能为0