代码运行正常,运行正常;
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
我似乎无法找到任何错误,代码只是没有进行计算。为什么不呢?
答案 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
? (只是一个猜测,而不是一个建议)