功能"检查"穿过去;但是,即使它们应该是if语句也不起作用。此代码的重点是找到更改所需的最少数量的硬币(用户输入)。我做了if
语句应该有效;但是,他们不是。我想这可能是因为我试图比较浮点数和整数但我不太确定。
#include <stdio.h>
#include <cs50.h>
float change;
int count;
int check();
int main(void)
{
printf("Please enter the change in dollars : $");
change = GetFloat();
change = change*100;
printf("¢% f\n", change);
int check();
printf("%i \n", count);
}
int check(void)
{
count = 0;
if (change > 24)
{
change = change - 25;
count++;
}
else if (change > 9)
{
change = change - 10;
count++;
}
else if (change > 4)
{
change = change - 5;
count++;
}
else if (change > 0)
{
change = change - 1;
count++;
}
return 0;
}
答案 0 :(得分:1)
int check();
不会调用该函数。这是另一个宣言。也许你打算用
check();
<强>更新强>
while
中需要check()
循环。
int check(void)
{
count = 0;
while ( change > 0 )
{
if (change > 24)
{
change = change - 25;
count++;
}
else if (change > 9)
{
change = change - 10;
count++;
}
else if (change > 4)
{
change = change - 5;
count++;
}
// This is already checked in conditional
// Use just else.
// else if (change > 0)
else
{
change = change - 1;
count++;
}
}
return 0;
}
如果没有while
循环,则函数最多将count
递增1。