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;
}
我完成了 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;
}