2012-10-09 21 views
6

संभव डुप्लिकेट:
Find the max of 3 numbers in Java with different data types (Basic Java)जावा में तीन नंबर की एक अधिकतम ढूंढना चाहते हैं

एक कार्यक्रम एक स्कैनर का उपयोग करता है तीन पूर्णांकों (सकारात्मक) को पढ़ने के लिए लिखें की सबसे बड़ी संख्या प्रदर्शित करता है तीन। (कृपया या तो ऑपरेटरों && या || का उपयोग किए बिना पूरा करें। इन ऑपरेटरों कक्षा में शीघ्र ही शामिल किया जाएगा। इसी तरह छोरों की आवश्यकता नहीं है।)

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); 
    } 
} 

मुझे पता है कि क्या इस कोड के साथ गलत क्या है चाहता हूँ और मैं कैसे प्राप्त कर सकते हैं अधिकतम जब मैं 3 अलग-अलग मान इनपुट करता हूं।

+2

: 'int' के रूप में चर' x', 'y',' z' बदलें और 'अधिकतम फोन 'Math.max (Math.max (x, y), z) के रूप में विधि 'क्योंकि यह केवल दो मानकों को स्वीकार करता है। निश्चित कोड स्निपेट के लिए उत्तर की जांच करें। –

+0

अपाचे का [NumberUtils.max (int a, int b, int c)] (https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/math/ NumberUtils.html) अधिकतम तीन int मान देता है। – RKumsher

+0

'Math.max' केवल दो तर्क लेता है, और वे तर्क संख्याएं होनी चाहिए। तो 'Math.max (Math.max (पूर्णांक।valueOf (x), Integer.valueOf (y)), Integer.valueOf (z)) 'इसे हल करेगा। – user3932000

उत्तर

2

यदि आप जो त्रुटि देख रहे हैं, तो यह आपकी सहायता करेगा। http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html पर देखें और आप देखेंगे कि अधिकतम केवल दो संख्याओं के बीच अधिकतम लौटाता है, इसलिए संभव है कि आप कोड संकलित भी न करें।

पहले अपनी सभी संकलन त्रुटियों को हल करें।

फिर आपके होमवर्क में पहले दो की तुलना करके अधिकतम तीन संख्याओं को ढूंढना होगा, और उस अधिकतम परिणाम को तीसरे मान के साथ तुलना करना होगा। आपके पास अब अपना जवाब ढूंढने के लिए पर्याप्त होना चाहिए।

2

आप java.lang.Math.max के बारे में अधिक पता होना चाहिए:

  1. java.lang.Math.max(arg1,arg2) केवल 2 तर्कों को स्वीकार करता है, लेकिन आप अपने कोड में 3 तर्क लेखन कर रहे हैं।
  2. 2 तर्कों double, int, long और float होना चाहिए, लेकिन अपने Math.max समारोह में लेखन String तर्क हैं। आपको आवश्यक प्रकार में उन्हें पार्स करने की आवश्यकता है।

आप कोड संकलित समय त्रुटि उपरोक्त विसंगतियों के कारण उत्पन्न करेंगे। कि अपने उद्देश्य का समाधान होगा अद्यतन कोड निम्नलिखित

प्रयास करें,:

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); 
    } 
} 
22

दो बातें: चर x, y, zint के रूप में बदलें और Math.max(Math.max(x,y),z) के रूप में विधि कॉल के रूप में यह दो पैरामीटर केवल स्वीकार करता है।

सारांश में, नीचे बदलने के लिए:

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); 
संबंधित मुद्दे

 संबंधित मुद्दे