确定最高和最低数字

时间:2012-05-14 07:38:12

标签: java

我正在编写一个程序,用户必须输入10个数字,然后输出将是最高数字和最低数字。我的代码有问题但找不到它。

int highest=0, lowest=0, num=0;
Scanner scan = new Scanner(System.in);

for (int i=0; i<10; i++) {
    System.out.print("Enter a number:");
    num = scan.nextInt();
}

if (num > highest) {           
    highest = num;
}         
else if(num < lowest) {             
    lowest = num;
}

System.out.println("Highest number is: " + highest);
System.out.println("Lowest number is: " + lowest);

4 个答案:

答案 0 :(得分:10)

以不同方式初始化您的值:

int highest = Integer.MIN_VALUE;
int lowest = Integer.MAX_VALUE;

如果将它们初始化为零,则永远不会有低于零的“最高”值或零以上的“最低”值

答案 1 :(得分:5)

您应该在if循环中放置两个for条件,否则您只会比较最后一个数字。最低值不应设置为0,而应设置为Integer.MAX_VALUE

答案 2 :(得分:2)

您的初始化和逻辑存在一些问题:

int highest=Math.MIN_VALUE;
int lowest=Math.MAX_VALUE;
int num=0;
Scanner scan = new Scanner(System.in);


for(int i=0; i<10; i++){

   System.out.print("Enter a number:");
   num = scan.nextInt();
   if (num > highest){

    highest = num;
   }

   if(num < lowest){

    lowest = num;
   }

}



   System.out.println("Highest number is: " + highest);
   System.out.println("Lowest number is: " + lowest);

您还应该使用2个if条件而不是else if。如果您只有一个号码,那么您最终会得到类似highest等于您输入的某个数字的内容,而lowest仍然等于Math.MAX_VALUE。这可能会引起混淆。

答案 3 :(得分:1)

您隐含地假设最低和最大为0,现在可能是这种情况, 试试这段代码片段。

class Main{
        public static void main(String args[]){
                int highest=0, lowest=0, num=0;
                Scanner scan = new Scanner(System.in);
                highest = lowest = scan.nextInt();
                for(int i=1; i<10; i++){
                       System.out.print("Enter a number:");
                       num = scan.nextInt();
                       if (num > highest){
                           highest = num;
                       }
                       if(num < lowest){
                           lowest = num;
                    }
                    System.out.println("Highest number is: " + highest);
                    System.out.println("Lowest number is: " + lowest);
               }
        }
}