求解一个简单JAVA问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:33:29
这是浙江大学出版的JAVA语言程序设计教程的一道课后题

编写一个程序 输入一组整数 以-1结束 比较并输出其中的最大值和最小值

这是第三章 程序流程 的习题 所以还不能使用数组

请高手解答下 并解释下 谢谢
关键输入一个数据 如果赋给a了 那max和min又怎么表示呢 另外捕捉异常可以搞成如果只输入一个-1就是system.out.println("你没有输入数据"); -1结束就不用说了吧
经测试 给的程序 测试出的结果不对 最小值不对 而且也没考虑到整数也可能是负数
把书上前面的例子写出来 希望有帮助 让用户输入一些成绩 以-1表示结束 计算输出平均成绩
import java.util.Scanner;
public Average{
public static void main(String[]args){
int sum=0;
int count=0;
int value=0;
Scanner scan=new Scanner(System.in);
do{
value=scan.nextInt();
if(value!=-1){
sum+=value;
count++;
}}while(value!=-1);
if(count!=0){
double average=(double)sum/count;
System.out.println("平均成绩:"+average);
}else
System.out.println("没有输入成绩");
}
}

java输入要捕捉异常的把。第三章估计会没教到。
提示一下思路:
1定义三个变量,a,min,max 定义初值为可能的最小值。
2提示输入,把输入的值写入a
3判断a=-1,不是的话分别比较a和min,max的大小,更新min,max
4 2,3循环,直到a=-1跳出。
5 输出min max

上面那位基本正确但是美中不足的是不输入负数会的得到min=0。
import java.io.*;
public class test{
public static void main(String[] args)throws Exception{
int a=0,min=0,max=0;
InputStream is=System.in;
BufferedReader br=new BufferedReader(new InputStreamReader(is));

min=a;
max=a;

for(int i=0;;i++){
System.out.println("input a number");
try {
a=new Integer(br.readLine());
} catch (Exception e) {
System.out.println("It's not a number!");
continue;
}
if(i==0){
min=a;max=a;
continue;
}
if(a==-1){
break;
}
if(min>a){
min=a;
}
if(max<a){
max=a;
}

}