2016-10-22 2 views
-2

Когда вы пытаетесь запустить, я получил неправильный ответ. Что случилось в моей программе? Получил ответ только за discount_amount не в состоянии получить общую сумму.Рассчитать общая сумма

Scanner input = new Scanner(System.in); 

    double dicount_amount = 0; 
    double discount1 = 0; 
    double total = 0; 

    System.out.println("Enter the cost of the software: "); 
    double cost = input.nextDouble(); 

    System.out.println(" Enter the quantity sold: "); 
    int quantity = input.nextInt(); 
    if (cost > 0 && quantity > 0){ 


    if(quantity >= 10 && quantity >=19){ 
     discount1 = 20/100; 
    } 
    else if(quantity >= 20 && quantity >=49){ 
     discount1 = 30/100; 
    } 
    else if(quantity >= 50 && quantity >=99){ 
     discount1 = 40/100; 
    } 
    else if(quantity <=100){ 
     discount1 = 50/100; 
    } 

    } 
    else { 

     System.out.println(" please enter valid input "); 
    } 

    double total1 = cost * quantity; 
    dicount_amount = total1 * discount1; 
    total= total1 - dicount_amount; 

    System.out.println("Total Cost: " + total); 

} 
+1

Вы можете добавить более подробную информацию о том, что вы ожидаете код, чтобы сделать, против того, что это на самом деле делать? Вы говорите, что получаете неправильный ответ, но у вас нет никаких подробностей о том, что такое ответ. – nbrooks

+0

Когда я запускаю ваш код и выбираю ввести '90', а' 2', я получаю '180'. 'Введите стоимость программного обеспечения: 90 Введите количество проданного товара: 2 Общая стоимость: 180.0' Если это неправильно, что правильно ответить? – davedwards

ответ

1

Простейшая вещь, которую вы можете сделать, это не делить discount1 = 20/100;, вместо этого вы можете установить непосредственно дорожим discount1 = 0.2;

Кроме того, вы должны проверить ваш, если заявление

Пример:

if(quantity >= 10 && quantity >=19) 

равен

if(quantity >=19) 

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

if(quantity >= 10 && quantity <=19) 
1

Угадайте, что случилось с вашей ошибкой? Вы разделили int на int, и вы исключали двойной результат. Typecast подразделение удвоить или сделать 20.0/100. Кроме того, я предполагаю, что вы хотите дать скидку, если количество составляет от 10 до 19. То, что вы делаете, не имеет смысла, потому что каждый раз, когда вы запускаете свою программу, он никогда не упадет в else if(), потому что вы устанавливаете quantity>=19 в если утверждение.

вот несколько изменений, которые я сделал в своем коде:

Scanner input = new Scanner(System.in); 

double dicount_amount = 0; 
double discount1 = 0; 
double total = 0; 

System.out.println("Enter the cost of the software: "); 
double cost = input.nextDouble(); 

System.out.println(" Enter the quantity sold: "); 
int quantity = input.nextInt(); 
if (cost > 0 && quantity > 0){ 


if(quantity >= 10 && quantity <=19){ 
    discount1 = (double)20/100; 
} 
else if(quantity >= 20 && quantity <=49){ 
    discount1 = (double)30.0/100; 
} 
else if(quantity >= 50 && quantity <=99){ 
    discount1 = (double)40.0/100; 
} 
else if(quantity >=100){ 
    discount1 = (double)50.0/100; 

} 

} 
else { 

    System.out.println(" please enter valid input "); 
} 
double total1 = cost * quantity; 
dicount_amount = total1 * discount1; 
total= total1 - dicount_amount; 

System.out.println("Total Cost: " + total); 

Выход:

Enter the cost of the software:15 
Enter the quantity sold:16 
Total Cost: 192.0 
Смежные вопросы