web-dev-qa-db-fra.com

Besoin de trouver un maximum de trois nombres dans java

Duplicata possible:
Trouvez le maximum de 3 nombres dans Java avec différents types de données (Java de base)

Écrire un programme qui utilise un scanner pour lire trois entiers (positifs) affiche le plus grand nombre de trois. (Veuillez compléter sans utiliser l'un des opérateurs && ou ||. Ces opérateurs seront couverts en classe sous peu. De même, les boucles ne sont pas nécessaires.)

Some sample run: 

Please input 3 integers: 5 8 3
The max of three is: 8

Please input 3 integers: 5 3 1
The max of three is 5

import Java.lang.Math;
import Java.util.Scanner;
public class max {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Please input 3 integers: ");
        String x = keyboard.nextLine();
        String y = keyboard.nextLine();
        String z = keyboard.nextLine();
        int max = Math.max(x,y,z);
        System.out.println(x + " " + y + " "+z);
        System.out.println("The max of three is: " + max);
    }
}   

Je veux savoir ce qui ne va pas avec ce code et comment trouver le maximum lorsque j'entre 3 valeurs différentes.

10
user1730357

Deux choses: changez les variables x, y, z en int et appelez la méthode en Math.max(Math.max(x,y),z) car elle accepte deux paramètres seulement.

En résumé, modifiez ci-dessous:

    String x = keyboard.nextLine();
    String y = keyboard.nextLine();
    String z = keyboard.nextLine();
    int max = Math.max(x,y,z);

à

    int x = keyboard.nextInt();
    int y = keyboard.nextInt();
    int z = keyboard.nextInt();
    int max =  Math.max(Math.max(x,y),z);
26
Yogendra Singh

Vous devriez en savoir plus sur Java.lang.Math.max:

  1. Java.lang.Math.max(arg1,arg2) n'accepte que 2 arguments mais vous écrivez 3 arguments dans votre code.
  2. Les 2 arguments doivent être double, int, long et float mais vous écrivez String arguments dans la fonction Math.max. Vous devez les analyser dans le type requis.

Votre code produira erreur de compilation en raison des décalages ci-dessus.

Essayez de suivre le code mis à jour, qui résoudra votre objectif:

import Java.lang.Math;
import Java.util.Scanner;
public class max {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Please input 3 integers: ");
        int x = Integer.parseInt(keyboard.nextLine());
        int y = Integer.parseInt(keyboard.nextLine());
        int z = Integer.parseInt(keyboard.nextLine());
        int max = Math.max(x,y);
        if(max>y){ //suppose x is max then compare x with z to find max number
            max = Math.max(x,z);    
        }
        else{ //if y is max then compare y with z to find max number
            max = Math.max(y,z);    
        }
        System.out.println("The max of three is: " + max);
    }
} 
2
Arun Kumar

Il serait utile que vous fournissiez l'erreur que vous voyez. Regardez http://docs.Oracle.com/javase/7/docs/api/Java/lang/Math.html et vous verrez que max ne renvoie que le maximum entre deux nombres, donc probablement votre code ne compile même pas.

Résolvez d'abord toutes vos erreurs de compilation.

Ensuite, vos devoirs consisteront à trouver le maximum de trois nombres en comparant les deux premiers ensemble, et à comparer ce résultat maximum avec la troisième valeur. Vous devriez en avoir assez pour trouver votre réponse maintenant.

2
Lolo