我最近参加了EDx.com提供的CS50课程。我目前在greedy.c上遇到麻烦,问题是pset1。我觉得问题在于我的do-while循环实际上并未循环。不管输入什么,我每次给程序我都会得到4个硬币。请让我知道我在做什么错。
public function actionCreate()
{
$model = new Brands();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
} elseif (Yii::$app->request->isAjax) {
return $this->renderAjax('create', [
'model' => $model
]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
答案 0 :(得分:0)
您的代码中的这一行:
get_int();
什么都不做。 get_int将获取并返回一个int,但是您实际上从未将该值放入变量中,这就是输入不会改变程序行为的原因。
也许您打算写这样的东西:
n = get_int();
答案 1 :(得分:0)
do while循环将始终执行一次,这就是为什么您总是获得4个硬币,然后又没有将输入值分配给n的原因。
如果n> 0,则第一次做while将无限运行,因此将其更改为:
do {
printf("How much change is owed?\n");
n = get_int();
} while (n == 0);
即使您不这样做,下一次您的工作时间也会增加,下面的内容应该更好。
while (n >= 25) {
count++;
n -= 25;
}
CS50祝您好运,那也是我刚开始的地方,这很困难,但实际上会让您学会思考。