2014-11-21 3 views
-4

Эта программа работает, но не так, как хотелось бы. Я могу вычислить max, но я должен сначала определить количество аргументов. Я хотел бы иметь возможность ввести переменное количество аргументов, а затем вернуть max. Как я могу это сделать?Найти максимальное значение - Java

public static void main(String[] args) { 
    Scanner cin=new Scanner(System.in); 

    int n=cin.nextInt(); 
    int max=cin.nextInt(); 
    for(int i=2; i<=n; i++){ 
     int num=cin.nextInt(); 
     if(num>max) max=num; 
    } 
    System.out.println(max); 

} 
+5

Я не уверен, что вы спрашиваете. – Growler

+0

Думаю, он пишет для 3 бывших жен? –

+0

Вы хотите условный перерыв? Это то, что говорит мне моя мысль. Быстрое и грязное падение решения заключалось бы в том, чтобы поставить оператор break в цикл for. https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html – DejaVuSansMono

ответ

2

Я думаю, вы хотите получить максимум, не указывая количество входов в качестве первого аргумента.

  1. чтения строки в виде строки
  2. разметить и скрытые числа к целому числу (конвертировать плавать, если вы позволяете чисел с плавающей точкой)
  3. известково макс

    public static void main(String[] args) { 
        Scanner cin=new Scanner(System.in); 
        String input=cin.nextLine(); 
        String[] numbers = input.split("\\s"); 
        int max = Integer.parseInt(numbers[0]); 
        for(int i=1; i<numbers.length; i++){ 
         int num=Integer.parseInt(numbers[i]); 
         if(num>max) max=num; 
        } 
        System.out.println(max); 
    } 
    
+0

спасибо plbsam – user1137621

0

Это моя догадка, вы можете сказать мне, если это то, что вы хотите сделать.

public static void main(String[] args) { 
    //Your tokenizer 
    Scanner scanForNumbers = new Scanner(System.in); 

    //First prompt for number of numbers 
    System.out.print("Print the Number of Numbers to Enter:"); 

    int numberOfNumbers = scanForNumbers.nextInt(); 

    System.out.println(); 

    int maxOfNumbers = 0; 

    int tempNum = 0; 
    //making number of numbers the max iterate till you get there. 
    for(int index = 0 index < numberOfNumbers; index++){ 
    //Prompt for a number 
    System.out.print("Enter another Number"); 
    tempNum = scanForNumbers.nextInt(); 

    System.out.println(); 
    //if it is bigger, set a new max. 
    if(tempNum > maxOfNumbers){ 

     maxOfNumbers = tempNum; 

    } 

    } 
    System.out.println("The Bigger Number is : " + maxOfNumbers); 
} 
+0

Мой код такой, но ı хотите без numberOfnumbers просто ı написать ввод для ex 5 7 8 9 6 и max 9 Как может ı сделать – user1137621

+0

Сколько номеров вы хотите взять? – DejaVuSansMono

Смежные вопросы