可以看一下代码吗?我在想会不会是变量没有初始值,或者说打印输出格式不对

题目:购买1-4个面包每个4元(邮费5元)、购买5个以上包括5个每个3元(邮费5元)、购买10个以上包括10个每个3元(包邮)。 输入格式: 输入一个整数n,表示面包个数。 输出格式: 根据面包个数,输出总费用。

img

这个总费用是要计算出来的,再定义一下pay = input.nextInt()就不需要了,还有就是输出语句报错了吧,把逗号换成加好就可以了


```java
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int pay = 0;
        if ( n < 4 ) {
            pay = 4 * n + 5;
        } else if ( n <= 9 ) {
            pay = 16 + ( n - 4 ) * 3 + 5;
        } else {
            pay = 16 + 15 + ( n - 9 ) * 3;
        }
        System.out.println("%d" + pay);
        System.out.println("购买了" + n + "个面包,总费用" + pay + "元");
    }

```

让你输入整数n,为什么pay也是输入的,你pay都输入了,那后面在忙活什么呢

你理解错了
n<=9
pay=3n+5
else
pay=3
n

pay是计算出来的,不需要=input.nextInt();
你这个是阶梯式收费,但题目可没有这种要求啊
对于n<=9,直接pay = n * 3+5就行
对于>=10,直接pay = n * 3就可以了
println(pay)就行了,%d这种是C语言的方法

购买5个以上不应该是n3+5 同理10个n3

pay的键盘输入删掉