cs50 pset1 cash.c 预期表达式

cs50 pset1 cash.c expected expression

我完成了 cash.c 的代码编写,但我无法编译它。我的每个 < 都出现 'expected expression' 错误 //最少数量的硬币以进行一定数量的找零 部分.我尝试更改它几次,甚至查看我到底做错了什么,但我找不到任何东西。有人可以帮帮我吗?另外,我很想听听有关我的代码的任何建议或反馈!代码在下面。

谢谢! 阿丽娜 <3

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

int main(void)
{
    // prompt user for non-negative input & convert dollars to cents
    float change;
    int cents;
    do
    {
        change = get_float("How much change? ");
        cents = round(change * 100);
    }
    while (change < 0);

    //least amount of coins to make certain amount of change
    int coins;
    coins = 0;
    while (cents >= 0.25)
    {
        coins++;
        cents = cents - 25;
    }
    while (cents >= .1 && < 0.25)
    {
        coins++;
        cents = cents - 10;
    }
    while (cents >= .05 && < .1)
    {
        coins++;
        cents = cents - 5;

    }
    while (cents >= 0.01 && < .05)
    {
        coins++;
        cents = cents - 1;
    }
    printf("%i\n", coins);
}

我也想知道我在使用 cs50 时遇到困难是否正常?我理解讲座和短裤中的所有内容,但问题集似乎花了我很长时间。我花了大约 3 周的时间才完成 mario.c,如果不谷歌搜索我就做不到。这让我怀疑我是否应该在没有任何经验的情况下听这门课程。我真的很喜欢这门课程,但你认为我应该把它降低一个档次,从对初学者更友好的课程开始吗?

您需要在每个“之间”比较中重复 cents

    // Wrong: while (cents >= .1 && < 0.25)
    while (cents >= .1 && cents < 0.25) ...
    // Wrong: while (cents >= .05 && < .1) ...
    while (cents >= .05 && cents < .1) ...
    // Wrong: while (cents >= 0.01 && < .05) ...
    while (cents >= 0.01 && cents < .05) ...

对于初学者这样的条件

 while (cents >= 0.25)

在任何情况下都没有意义,因为变量 cents 被声明为 int.

类型
int cents;

你的意思好像是

 while (cents >= 25 )

在其他 while 循环中,您有语法错误,例如在这个 while 循环中

while (cents >= .1 && < 0.25)

你至少需要写

while (cents >= 10 && cents < 25)

但是,当控件到达此 while 循环时,由于前面的 while 循环,变量 cents 的值已经小于 25。所以写

就够了
while ( cents >= 10 )

所以你的循环看起来像

while ( cents >= 25 )
{
    coins++;
    cents = cents - 25;
}
while ( cents >= 10 )
{
    coins++;
    cents = cents - 10;
}
while ( cents >= 5 )
{
    coins++;
    cents = cents - 5;

}
while (cents >= 1 )
{
    coins++;
    cents = cents - 1;
}