屏幕输出有什么问题?

时间:2013-04-02 01:43:57

标签: c++

代码运行正常,运行正常;

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

我似乎无法找到任何错误,代码只是没有进行计算。为什么不呢?

3 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:2)

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

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

否则,您的号码将紧挨着打印。

答案 2 :(得分:1)

您的代码中存在无限循环:

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

也许您只想打印一次:

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

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