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.
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);
Vous devriez en savoir plus sur Java.lang.Math.max
:
Java.lang.Math.max(arg1,arg2)
n'accepte que 2 arguments mais vous écrivez 3 arguments dans votre code.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);
}
}
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.