我的错误在哪里? CS50 greedy.c
Where is my mistake? CS50 greedy.c
有人可以看看下面的代码并告诉我我做错了什么吗?我附上了 check50 支票。
非常感谢
#include <cs50.h>
#include <stdio.h>
int main(void)
{
float change;
do
{
printf("O hai! How much change is owed?\n");
change = get_float();
}
while (change < 0 );
float cents = change *100; // create float cents
// initialise counter with 0
int counter = 0;
// loop as long as cents bigger than 0
while (cents > 0)
{
// substract 25 cents each time
while (cents >= 25)
{
cents = cents - 25;
counter++;
}
// substract 10 cents each time
while (cents >= 10)
{
cents = cents - 10;
counter++;
}
// substract 5 cents each time
while (cents >= 5 )
{
cents = cents - 5;
counter++;
}
// substract 1 cent each time
while (cents >= 1 )
{
cents = cents - 1;
counter++;
}
}
printf("%i\n", counter);
}
Checking..........
:)贪婪存在
:)贪心编译
:) 0.41 的输入产生 4
的输出
:) 0.01 的输入产生 1
的输出
:( 输入 0.15 产生输出 2
没有找到“2\n”
:) 1.6 的输入产生 7
的输出
:) 23 的输入产生 92 的输出
:( 4.2 的输入产生 18 的输出
等待程序退出时超时
:) 拒绝像 -.1
这样的负输入
:) 拒绝 "foo"
的非数字输入
:) 拒绝非数字输入“”
这样做:
int cents = round(change * 100);
只是因为在这个上下文中没有分片段。
这也确保错误输入例如 7.324
(而不是 7.32
)得到 'corrected'。
有人可以看看下面的代码并告诉我我做错了什么吗?我附上了 check50 支票。 非常感谢
#include <cs50.h>
#include <stdio.h>
int main(void)
{
float change;
do
{
printf("O hai! How much change is owed?\n");
change = get_float();
}
while (change < 0 );
float cents = change *100; // create float cents
// initialise counter with 0
int counter = 0;
// loop as long as cents bigger than 0
while (cents > 0)
{
// substract 25 cents each time
while (cents >= 25)
{
cents = cents - 25;
counter++;
}
// substract 10 cents each time
while (cents >= 10)
{
cents = cents - 10;
counter++;
}
// substract 5 cents each time
while (cents >= 5 )
{
cents = cents - 5;
counter++;
}
// substract 1 cent each time
while (cents >= 1 )
{
cents = cents - 1;
counter++;
}
}
printf("%i\n", counter);
}
Checking..........
:)贪婪存在
:)贪心编译
:) 0.41 的输入产生 4
的输出:) 0.01 的输入产生 1
的输出:( 输入 0.15 产生输出 2 没有找到“2\n”
:) 1.6 的输入产生 7
的输出:) 23 的输入产生 92 的输出
:( 4.2 的输入产生 18 的输出 等待程序退出时超时
:) 拒绝像 -.1
这样的负输入:) 拒绝 "foo"
的非数字输入:) 拒绝非数字输入“”
这样做:
int cents = round(change * 100);
只是因为在这个上下文中没有分片段。
这也确保错误输入例如 7.324
(而不是 7.32
)得到 'corrected'。