【发布时间】:2013-01-18 20:15:39
【问题描述】:
我刚刚进入 C 语言,但遇到了一些麻烦。 我花了很长时间弄清楚为什么这个 while 循环不会重复。我在 JavaScript 中做了同样的循环,它重复了正确的输出。 http://jsfiddle.net/rFghh/
如果我使用while (cents >= 25),那么终端会打印出起始硬币并会闪烁并挂起。如果我使用<=25(如下所示),它会打印一次迭代。关于我做错了什么有什么想法吗??
/**
* Greedy, given a change amount, figures out the min number of coins needed
*/
#include <stdio.h>
#include <cs50.h>
#include <math.h>
int main(int argc, char const *argv[])
{
// declare variables
int cents = 0;
int coins = 0;
// ask user for amount of money, accepts a float value
// convert input to cents and round to nearest int
printf("O hai! ");
do
{
printf("How much change is owed? ");
cents = round(100 * GetFloat());
// if input is negative then ask again
} while (cents <= 0);
printf("Starting Cents: %d, coins are: %d\n", cents, coins);
// Check if you can use a quarter
while (cents <= 25);
{
printf("Cents before decrement: %d\n", cents);
cents = cents - 25;
printf("Cents after decrement: %d\n", cents);
coins = coins + 1;
}
printf("FINAL Cents: %d, coins are: %d\n", cents, coins);
return 0;
}
jharvard@appliance (~/cs50/Week_1/pset1): make greedy && ./greedy
clang -ggdb3 -O0 -std=c99 -Wall -Werror greedy.c -lcs50 -lm -o greedy
O hai! How much change is owed? 1.25
Starting Cents: 125, coins are: 0
Cents before decrement: 125
Cents after decrement: 100
FINAL Cents: 100, coins are: 1
jharvard@appliance (~/cs50/Week_1/pset1):
【问题讨论】:
-
删除
;之后的while(...)。 -
您将前往 K&R C 的副本。现在。
-
@H2CO3 ,你会推荐 K&R C 而不是 C 吗?顺便说一句,额外的分号是一个错字 =)
-
@SkinnyG33k 我主要推荐谷歌搜索“C 教程”。
标签: c loops while-loop cs50