gpt4 book ai didi

c - printf 不工作和其他问题

转载 作者:行者123 更新时间:2023-11-30 20:47:20 27 4
gpt4 key购买 nike

我终于让我的更改程序打印出一些数字,而不是抛出浮点异常。然而,现在略有偏差。该程序没有给出 2 个 25 美分、1 个角硬币、1 个镍币和 2 个便士,而是只选择了一个便士,我无法从对代码的条件或结构的任何检查中找出原因。我在每个 if 语句中添加了一些检查,但甚至没有打印出来,我现在非常困惑..

#include <stdio.h>
#include <cs50.h>
#include <math.h>

int changeF(float change, float div)
{
int c = change/div;
return c;
}

int main(void)
{
printf("Enter the bill amount:");
float bill = GetFloat();
printf("Enter the payment amount:");
float payment = GetFloat();
float q = .25; float di = .1; float n = .05; float p = .01;
float change = payment - bill;
do
{
if (bill >= 0.0 && payment >= 0.0 && change >= 0.0)
{
if (change >= q)
{
int quarters = changeF(change, q);
printf("%d quarters\n", quarters);
change = change - (.25*quarters);
}
if (change >= di)
{
int dimes = changeF(change, di);
printf("%d dimes\n", dimes);
change = change - (.1*dimes);
}
if (change >= n)
{
int nickels = changeF(change, n);
printf("%d nickels\n", nickels);
change = change - (.05*nickels);
printf("%f change", change);
}
if (change >= p)
{
int pennies = changeF(change, p);
printf("%d pennies\n", pennies);
change = change - (.01*pennies);
printf("%f", change);
}
}
}
while (change > 0.0);
}

最佳答案

通过在字符串末尾附加换行符重试:

printf("Enter the bill amount:\n");

原因:stdout 是行缓冲的,您需要给它一个换行符来刷新输出。

或者通过 fflush(stdout); 显式刷新它。

关于c - printf 不工作和其他问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26016760/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com