这是一个简单的程序,我去购买两件商品,每件都有价格和数量。
这个程序将第一个项目的价格乘以它的数量和第二个,然后将它们加在一起,但是如果这两个项目的总和等于或大于100,则必须有一个条件总折扣,即5%。
我编写了程序,但是当我运行它并且两个项目的结果是100时,程序无法应用折扣,它给了我以下内容: -
请输入第一个价格
25
请输入第一个数量
2
请输入第二个价格
2
请输入第二个数量
25
结果是= 100
折扣是= 0.0
最终结果是= 100.0
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
byte p1,q1,p2,q2;
short t1,t2,result = 0;
float resu,disc,finaal;
disc=5/100;
resu=result*disc;
Scanner s = new Scanner(System.in);
System.out.println("Please Enter The First Price");
p1=s.nextByte();
System.out.println("Please enter The First Quantity");
q1=s.nextByte();
System.out.println("Please Enter The Second Price");
p2=s.nextByte();
System.out.println("Please enter The Second Quantity");
q2=s.nextByte();
t1=(short) (p1*q1);
t2=(short) (p2*q2);
result=(short) (t1+t2);
System.out.println("The Result Is ="+result);
if(result>=100)
{
finaal=result-resu;
System.out.println("The Discount Is = "+resu);
System.out.println("The Final Result Is = " + finaal);
}
}
}
答案 0 :(得分:0)
您在计算resu
之前计算了result
。
答案 1 :(得分:0)
您在resu
之前计算result
:
int t1,t2,result = 0;
float resu,disc,finaal;
disc=5/100;
resu=result*disc;
因此resu
始终为0,并且不会应用任何折扣。
您应该在结果后计算resu
。
同样disc
应初始化为0.05f
而不是5/100
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int p1,q1,p2,q2;
int t1,t2,result = 0;
float resu,disc = 0.05f,finaal;
Scanner s = new Scanner(System.in);
System.out.println("Please Enter The First Price");
p1=s.nextInt();
System.out.println("Please enter The First Quantity");
q1=s.nextInt();
System.out.println("Please Enter The Second Price");
p2=s.nextInt();
System.out.println("Please enter The Second Quantity");
q2=s.nextInt();
t1 = (p1*q1);
t2= (p2*q2);
result= (t1+t2);
resu=result*disc;
System.out.println("The Result Is ="+result);
if(result>=100)
{
finaal=result-resu;
System.out.println("The Discount Is = "+resu);
System.out.println("The Final Result Is = " + finaal);
}
}
}
测试:
Please Enter The First Price
25
Please enter The First Quantity
2
Please Enter The Second Price
2
Please enter The Second Quantity
25
The Result Is =100
The Discount Is = 5.0
The Final Result Is = 95.0
答案 2 :(得分:0)
确保结果为0,请看第8行和第9行
short t1,t2,result = 0;
disc=5/100;
resu=result*disc;
所以resu =(5/100 * 0)为0 修正后(resu = result * disc;)应该在(结果=(短)(t1 + t2);)之前没有出现
正确的代码:
result=(short) (t1+t2);
resu=result*disc;
结果 现在100
希望有所帮助