找出每个变量代表的总量中有多少?

时间:2017-10-21 04:08:49

标签: java

我试图找出变量1的总量中有多少负责以及总成本变量2负责多少。到目前为止,我附上了我的源代码图片

分配说明是:程序将计算所有费用的总和,如果费用平均分配,每个人应支付的费用,以及每个朋友实际支付的费用。如果一个人的薪水低于另一个人,那么他们就会欠他们的朋友一些钱。

import java.util.Scanner;

public class Trip {

public static void main(String[] args) {

Scanner keyboard = new Scanner(System.in);

double flight, hotel, meals, tour, total, owes;
String name1, name2;
double Lisa, Bart;
double input1, input2, input3, input4;

Lisa = 1;
Bart = 2;

System.out.print("Enter the first name: ");

name1 = keyboard.nextLine();

System.out.print("Enter the second name: ");

name2 = keyboard.nextLine();

System.out.print("Enter cost of flights: ");

flight = keyboard.nextDouble();

System.out.print("Who paid for the flights: Enter 1 for Lisa or 2 for Bart ");
input1 = keyboard.nextInt();

System.out.print("Enter cost of hotel: ");

hotel = keyboard.nextDouble();

System.out.print("Who paid for the hotel: Enter 1 for Lisa or 2 for Bart ");

input2 = keyboard.nextInt();

System.out.print("Enter cost of tour: ");

tour = keyboard.nextDouble();

System.out.print("Who paid for the tour: Enter 1 for Lisa or 2 for Bart ");

input3 = keyboard.nextInt();

System.out.print("Enter cost of meals: ");

meals = keyboard.nextDouble();

System.out.print("Who paid for the meals: Enter 1 for Lisa or 2 for Bart ");

input4 = keyboard.nextInt();


total = flight + hotel + meals + tour;

System.out.printf("Total bill for trip: %.2f \n", total);

owes = total / 2;

System.out.printf("Each person owes: %.2f", owes);

} }

1 个答案:

答案 0 :(得分:0)

假设你有两个人 Max Simon 。您可以执行以下操作,首先使用您的逻辑找到 Max 所欠的金额。然后找到 Simon 所欠的金额,你只需使用totalCost - amountMaxOwes

import java.util.Scanner;

class Trip {

  public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    System.out.print("Enter the first name:");
    String nameOne = scanner.nextLine();

    System.out.print("Enter the second name:");
    String nameTwo = scanner.nextLine();

    System.out.print("Enter cost of flights:");
    double flightsCost = scanner.nextDouble();

    System.out.printf("Who paid for the flights? Enter 1 for %s or 2 for %s:", nameOne, nameTwo);
    int whoPaidFlights = scanner.nextInt();

    System.out.print("Enter cost of hotel:");
    double hotelCost = scanner.nextDouble();

    System.out.printf("Who paid for the hotel? Enter 1 for %s or 2 for %s:", nameOne, nameTwo);
    int whoPaidHotel = scanner.nextInt();

    System.out.print("Enter cost of tour:");
    double tourCost = scanner.nextDouble();

    System.out.printf("Who paid for the tour? Enter 1 for %s or 2 for %s:", nameOne, nameTwo);
    int whoPaidTour = scanner.nextInt();

    System.out.print("Enter cost of meals:");
    double mealsCost = scanner.nextDouble();

    System.out.printf("Who paid for the meals? Enter 1 for %s or 2 for %s:", nameOne, nameTwo);
    int whoPaidMeals = scanner.nextInt();

    double totalCost = flightsCost + hotelCost + tourCost + mealsCost;
    System.out.printf("Total bill for trip: %.2f \n", totalCost);

    // This stuff can be moved to a more appropriate place if you want to
    double personOnePaid = 0;
    if(whoPaidFlights == 1) personOnePaid += flightsCost;
    if(whoPaidHotel == 1) personOnePaid += hotelCost;
    if(whoPaidTour == 1) personOnePaid += tourCost;
    if(whoPaidMeals == 1) personOnePaid += mealsCost;

    double personTwoPaid = totalCost - personOnePaid;

    System.out.printf("%s owes: %.2f \n", nameOne, personOnePaid);
    System.out.printf("%s owes: %.2f \n", nameTwo, personTwoPaid);
  }
}

使用示例:

Enter the first name: Max
Enter the second name: Simon
Enter cost of flights: 299.34
Who paid for the flights? Enter 1 for Max or 2 for Simon: 1
Enter cost of hotel: 300.40
Who paid for the hotel? Enter 1 for Max or 2 for Simon: 2
Enter cost of tour: 55.00
Who paid for the tour? Enter 1 for Max or 2 for Simon: 1
Enter cost of meals: 314.15
Who paid for the meals? Enter 1 for Max or 2 for Simon: 1
Total bill for trip: 968.89 
Max owes: 668.49 
Simon owes: 300.40