0

代码运行良好,一切正常;

printf("\nEnter number of hours ");
scanf("%f", &hours);

{
    if (hours>=5) {
        calc_charge=minimum_fee;
        bill = hours * minimum_fee;
        printf("%i", &bill);
    }
    else
        if(hours>=8) {
            bill=hours*mini_fee;
            printf("%i", &bill);
        }
        else
            if (hours <= 24) {
                bill = hours*maximum_fee;
                printf("%i", &bill);
            }

    while (hours >= 4) {
        bill = hours*minimum_fee;
        printf("%i", &bill);
    }

但输出是

34525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160

我似乎找不到任何问题,代码只是没有进行计算。为什么不?

4

3 回答 3

12

删除&所有 printfs。您想打印变量的值而不是其地址。

于 2013-04-02T01:44:45.937 回答
2

除了&按照 Armin 的建议删除之外,它还可能有助于\n在您的 printfs 中添加换行符或至少空格,例如:

printf("%i\n", bill);

否则,您的号码将彼此相邻打印。

于 2013-07-16T14:22:02.947 回答
1

您的代码中有一个无限循环:

while (hours >= 4) {
    bill = hours*minimum_fee;
    printf("%i", &bill);
}

也许您只想打印一次:

    bill = hours*minimum_fee;
    printf("%i", &bill);

或者也许你想写if而不是while?(只是猜测,不是建议)

于 2013-07-16T15:01:13.717 回答