2013-03-27 76 views
1

如何计算最大号码并显示它?如何找到最大号码

import java.util.Scanner; 

public class GreatestNumber { 

    public static void main(String[] args) { 
    int [] num = new int [10]; 
    int counter; 
    int max = 0; 

    Scanner read = new Scanner(System.in); 

    for (int i=0; i<num.length; i++) 
    { 
     System.out.print("Enter StaffID to be edited:"); 
     num[i]=read.nextInt(); 
    } 
    } 
} 
+0

请正确格式化代码,并将问题标记为Java。 – 2013-03-27 13:10:54

+0

使用二进制搜索 – apomene 2013-03-27 13:11:45

+2

@apomene二分搜索找到排序数组中的值的位置。这不是OP正在做的事情。 – 2013-03-27 13:12:46

回答

4

您可能想在比较阅读时的数字。另外,如果所有输入值均为负数,则使用0作为max的起始值将不会打印出您想要的结果。使用Integer.MAX_VALUE代替:

int [] num = new int [10]; 
int counter; 
int max = Integer.MIN_VALUE; // use 

Scanner read = new Scanner(System.in); 

for (int i=0; i<num.length; i++) 
{ 
    System.out.print("Enter StaffID to be edited:"); 
    num[i]=read.nextInt(); 
    if (num[i] > max) 
    { 
     max = num[i]; 
    } 
} 

System.out.print("Max number is:"); 
System.out.print(max); 
+0

如果最大数字是负数,最好设置为'num [0]'最好' – Maroun 2013-03-27 13:14:52

+0

@MarounMaroun已更新它 – 2013-03-27 13:15:16

+0

它是'Integer.MIN_VALUE'而不是'int.MIN_VALUE' – Sanchit 2013-03-27 13:18:24

1

这是你如何做到这一点:

  1. 既然你是最大的号码后,创造出具有非常小的值的整数。

  2. 遍历数组的元素。如果当前正在查看的元素大于当前最大的元素(在步骤1中初始化),则更新最大元素的值。目前最大的

0

跟踪,如果你发现一个较大的数字更新,即

if (num[i] > max) 
    max = num[i]; 
0

设置一个运行变量maxInteger.MIN_VALUE。将其与数组中的每个元素进行循环比较,如果数组元素较大,则将其值复制到max。最后你有max中最大的元素。

3

除了其他用户提供的解决方案之外,您可以从数组中创建一个List,然后使用在列表中找到最大值的现有方法。

List list = Arrays.asList(ArrayUtils.toObject(num)); 
System.out.println(Collections.max(list)); //Will print the maximum value