当试图跑时,我得到了错误的答案。我的课程有什么问题?
只有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);
}
答案 0 :(得分:1)
您可以做的最简单的事情就是不要划分endl
,而是可以直接设置值discount1 = 20/100;
另外你应该检查你的if语句
示例:
discount1 = 0.2;
等于
if(quantity >= 10 && quantity >=19)
我想你想检查数量是否介于两者之间。所以你应该使用
if(quantity >=19)
答案 1 :(得分:1)
猜猜你的错是什么?你把int除以int,你得到的是双重结果。将该分区加倍或做20.0/100
。此外,我假设你想要在10到19之间给予折扣。你一直在做什么没有意义,因为每次你运行你的程序时它都不会落入else if()
声明,因为你正在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