此程序不显示我在其中制作的折扣

时间:2016-06-10 14:10:07

标签: java

这是一个简单的程序,我去购买两件商品,每件都有价格和数量。

这个程序将第一个项目的价格乘以它的数量和第二个,然后将它们加在一起,但是如果这两个项目的总和等于或大于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);
        }
    }
}

3 个答案:

答案 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

希望有所帮助