这有什么意义吗?
我被困在这里有4个错误,这是因为我没有宣布q,d,n,p。但如果我这样做,它会继续向我发送更多错误。
可能存在关于混合整数和浮点数的事情。
#include <cs50.h>
#include <stdio.h>
int main(void)
{
{
printf("O hai! ");
}
float valueTotal, quarter, valueQuarter, dime, valueDime,nickel, valueNickel, penny, valuePenny;
do
{
printf("How much change is owed?\n");
valueTotal = GetFloat();
}
while (valueTotal <= 0);
for (float quarter = 0; valueTotal >= 0.25; quarter--)
{
valueQuarter = valueTotal - ( q * 0.25);
}
for (float dime = 0; valueQuarter >= 0.10; dime--)
{
valueDime = valueQuarter - ( d * 0.10);
}
for (float nickel = 0; valueDime >= 0.05; nickel--)
{
valueNickel = valueDime - ( n * 0.05);
}
for (float penny = 0; valueNickel >= 0.01; penny--)
{
valuePenny = valueNickel - ( p * 0.01);
}
printf("q+d+n+p\n");
}
答案 0 :(得分:1)
我没有宣布q,d,n,p。
这正是你的问题 - 至少其中一个,无论如何。如果这些变量未声明,世界上的程序/代码应该如何评估像q * 0.25
这样的东西?如果我说&#34;嘿,男人,x是0.25倍?&#34;你完全不知道,或者告诉我答案取决于x。这段代码也是如此。
你说:
但如果我这样做,它会继续向我发送更多错误。
我假设您还需要初始化它们(或者,在外行人的条件下,将它们设置为等于某些东西,即.q = 0)
此外,你的循环条件都没有实际改变....意味着它们无限循环。确保循环中的代码实际上帮助您达到满足循环条件的目标;例如:
for (float quarter = 0; valueTotal >= 0.25; quarter--)
{
valueQuarter = valueTotal - ( q * 0.25);
}
valueTotal总是大于0.25(如果它开始时小于0.25),因为你根本不会改变它。