2017-10-06 15 views
-3
import java.util.*; 
import java.math.*; 

public class Arithmetic 
{ 

public static void main(String[] args) 
{ 
    Scanner scan = new Scanner(System.in); 
    double mealCost = scan.nextDouble(); // original meal price 
    double tipPercent = scan.nextDouble(); // tip percentage 
    double taxPercent = scan.nextDouble(); // tax percentage 
    scan.close(); 

    // Write your calculation code here. 
    tipPercent = mealCost*tipPercent/100.0; 
    taxPercent =mealCost*taxPercent/100.0; 



    //cast the result of the rounding operation to an int and save it as totalCost 

    double totalCost = mealCost + tipPercent + taxPercent; 

    // Print your result 
    int total = (int)totalCost; 
    System.out.println("The total meal cost is " + total + " dollars."); 
} 
} 

entrée:
20,75
Résultats escomptés: Le coût total du repas est de 23 dollars. Résultat: Le coût total du repas est de 26 dollars.ne pas obtenir le résultat attendu dans le programme HackerRank de day2

Quel est le problème avec ce programme?

+0

Avez-vous encore votre programme déboguer? Avez-vous vérifié que les différentes étapes produisaient le bon résultat? Pourquoi utilisez-vous les valeurs '' 20'' et '' 8''? – f1sh

+3

vous n'utilisez pas vos arguments d'entrée, en les remplaçant à la place par des nombres codés en dur ..... –

+0

Votre résultat attendu ne devrait-il pas être de 33 dollars? Juste une simple addition de tous les trois vous donne 33,75! – procrastinator

Répondre

0

Vous n'utilisez pas votre pourboire et vos taxes.

Il devrait être:

tipPercent = mealCost*tipPercent/100.0; 
taxPercent = mealCost*taxPercent/100.0; 
+0

oui je l'ai fait. même s'il en résulte même pas prévu. –

+0

Je ne peux pas reproduire votre problème. Quand j'ai pris votre code et que j'ai fait mes changements dessus, il a produit le résultat attendu. Peut-être que vous avez quelque chose de mal avec votre calcul. –

0

enfin ce code fonctionne parfaitement

import java.util.*; 
import java.math.*; 

public class Arithmetic 
{ 

public static void main(String[] args) 
{ 
    Scanner scan = new Scanner(System.in); 
    double mealCost = scan.nextDouble(); // original meal price 
    double tipPercent = scan.nextDouble(); // tip percentage 
    double taxPercent = scan.nextDouble(); // tax percentage 
    scan.close(); 

    // Write your calculation code here. 
    tipPercent = mealCost*tipPercent/100.0; 
    taxPercent =mealCost*taxPercent/100.0; 

    // cast the result of the rounding operation to an int and save it as 
//totalCost 
    double totalCost = mealCost + tipPercent + taxPercent; 

    if((tipPercent + 0.5)>=((int)tipPercent + 1)) 
     { 
      totalCost += 1; 
     } 
     else 
    { 
    } 
    // Print your result 
    int total = (int)totalCost; 
    System.out.println("The total meal cost is " + total + " dollars."); 
} 
} 
+0

Ceci n'est pas une solution générale. Vous définissez simplement la valeur de 'totalCost'. – procrastinator