Помогите понять,написать алгоритм программы
Всем добрый день, начал только изучать Java, нашел сайт на котором постепенно пишешь свой первый проект, но столкнулся с проблемой на 3 этапе из 6.
Условие программы:Если в кофемашине достаточно расходных материалов для приготовления указанного количества кофе, программа должна напечатать «Да, я могу приготовить такое количество кофе». Если кофемашина может приготовить больше, программа должна вывести «Да, я могу приготовить такое количество кофе (и даже N больше)», где N - количество дополнительных чашек кофе, которые может приготовить кофемашина. . Если ресурсов недостаточно для приготовления указанного количества кофе, программа должна вывести «Нет, я могу приготовить только N чашек кофе». Как и на предыдущем этапе, кофемашине требуется 200 мл воды, 50 мл молока и 15 г кофейных зерен для приготовления одной чашки кофе.
package machine;
import java.util.Scanner;
public class CoffeeMachine {
public static void main(String[] args) {
/*Scanner*/
Scanner s = new Scanner(System.in);
System.out.println("Write how many ml of water the coffee machine has:");
var water = s.nextInt();
System.out.println("Write how many ml of milk the coffee machine has:");
var milk = s.nextInt();
System.out.println("Write how many grams of coffee beans the coffee machine has:");
var coffeeBeans = s.nextInt();
System.out.println("Write how many cups of coffee you will need: ");
var valueOfCups = s.nextInt();
//for 1 cup
var oneCupWater=200;
var oneCupMilk=50;
var oneCupCoffeeBeans=15;
/*Possible for All*/
var possibleWater = water/oneCupWater;
var possibleMilk = milk/oneCupMilk;
var possibleCoffeeBeans= coffeeBeans/oneCupCoffeeBeans;
/*Minimum*/
var min = Math.min(Math.min(possibleWater,possibleMilk),possibleCoffeeBeans);
/*Instruction IF ELSE-IF IF*/
if (min<valueOfCups)System.out.println("Yes, I can make that amount of coffee (and even "+(min-valueOfCups)+" more than that)");
else if(min==valueOfCups)System.out.println("Yes, I can make that amount of coffee");
else System.out.println("No, I can make only "+(min) +" cups of coffee");
}
}
Вот что смог написать, подскажите что не так в алгоритме с if, просто на словах, код не нужен,хочу сам до него дойти.
Wrong answer in test #2
Your output:
No, I can make only 2 cups of coffee
Right output:
Yes, I can make that amount of coffee (and even 2 more than that)
Please find below the output of your program during this failed test.
Note that the '>' character indicates the beginning of the input line.
---
Write how many ml of water the coffee machine has:
> 600
Write how many ml of milk the coffee machine has:
> 153
Write how many grams of coffee beans the coffee machine has:
> 100
Write how many cups of coffee you will need:
> 1
No, I can make only 2 cups of coffee
Ответы (1 шт):
Все просто поменяйте знак if (min > valueOfCups). Вы говорите что у вас min чашек кофе получится. И если min больше чем чашек нужно, т.е valueOfCups тогда ....
package machine;
import java.util.Scanner;
public class CoffeeMachine {
public static void main(String[] args) {
/*Scanner*/
Scanner s = new Scanner(System.in);
System.out.println("Write how many ml of water the coffee machine has:");
var water = s.nextInt();
System.out.println("Write how many ml of milk the coffee machine has:");
var milk = s.nextInt();
System.out.println("Write how many grams of coffee beans the coffee machine has:");
var coffeeBeans = s.nextInt();
System.out.println("Write how many cups of coffee you will need: ");
var valueOfCups = s.nextInt();
//for 1 cup
var oneCupWater=200;
var oneCupMilk=50;
var oneCupCoffeeBeans=15;
/*Possible for All*/
var possibleWater = water/oneCupWater;
var possibleMilk = milk/oneCupMilk;
var possibleCoffeeBeans= coffeeBeans/oneCupCoffeeBeans;
/*Minimum*/
var min = Math.min(Math.min(possibleWater,possibleMilk),possibleCoffeeBeans);
/*Instruction IF ELSE-IF IF*/
if (min>valueOfCups)System.out.println("Yes, I can make that amount of coffee (and even "+(min-valueOfCups)+" more than that)");
else if(min==valueOfCups)System.out.println("Yes, I can make that amount of coffee");
else System.out.println("No, I can make only "+(min) +" cups of coffee");
}
}