如果用户输入是否定的,再次提示
If user input is negative, prompt again
所以我正在计算货币变化,如果用户输入 0.41
结果将是:1 quarter, 1 dime, 1 nickel, 1 penny
.
代码运行良好,直到您提供负值。
我添加了一个 if 语句来检查它,之后我所能做的就是 exit(0)
。我想一次又一次地重新提示用户输入正值,我该怎么做?
#include <cs50.h>
#include <stdio.h>
int main (void) {
printf("How much change do you owe: ");
float amount = GetFloat();
float cents = 100.0 * amount;
float quarter = 0;
float dime = 0;
float nickel = 0;
float penny = 0;
if (amount < 0) {
printf("Please provide a positive value.");
exit(0);
}
while (cents > 0) {
if (cents >= 25.0) {
cents -= 25.0;
quarter += 1;
} else if (cents >= 10.0) {
cents -= 10.0;
dime += 1;
} else if (cents >= 5.0) {
cents -= 5.0;
nickel += 1;
} else if (cents >= 1.0) {
cents -= 1.0;
penny += 1;
}
}
printf("%f quarters, %f dimes, %f nickels, %f pennies, Total of %f coins.\n", quarter, dime, nickel, penny, quarter + dime + nickel + penny);
}
float amount;
do
{
amount = GetFloat();
}
while (0 < amount);
编辑:Matt 赢了,因为他包含了告诉用户为什么他们被循环播放的消息,当然。
作为新手,弄不清楚在哪里放置声明可能有点尴尬,所以这里是:
float amount;
for (;;)
{
amount = GetFloat();
if ( amount >= 0 )
break;
printf("Please provide a positive value.\n");
}
float cents = 100.0 * amount;
float quarter = 0;
// etc.
您不能将 float amount
放在 { }
中,否则该变量将限定在该范围内,并且在 }
.
之后无法访问
编写相同循环的更紧凑的方法是:
while( (amount = GetFloat()) < 0 )
printf("Please provide a positive value.");
但您可以使用您认为更合理的版本。
所以我正在计算货币变化,如果用户输入 0.41
结果将是:1 quarter, 1 dime, 1 nickel, 1 penny
.
代码运行良好,直到您提供负值。
我添加了一个 if 语句来检查它,之后我所能做的就是 exit(0)
。我想一次又一次地重新提示用户输入正值,我该怎么做?
#include <cs50.h>
#include <stdio.h>
int main (void) {
printf("How much change do you owe: ");
float amount = GetFloat();
float cents = 100.0 * amount;
float quarter = 0;
float dime = 0;
float nickel = 0;
float penny = 0;
if (amount < 0) {
printf("Please provide a positive value.");
exit(0);
}
while (cents > 0) {
if (cents >= 25.0) {
cents -= 25.0;
quarter += 1;
} else if (cents >= 10.0) {
cents -= 10.0;
dime += 1;
} else if (cents >= 5.0) {
cents -= 5.0;
nickel += 1;
} else if (cents >= 1.0) {
cents -= 1.0;
penny += 1;
}
}
printf("%f quarters, %f dimes, %f nickels, %f pennies, Total of %f coins.\n", quarter, dime, nickel, penny, quarter + dime + nickel + penny);
}
float amount;
do
{
amount = GetFloat();
}
while (0 < amount);
编辑:Matt 赢了,因为他包含了告诉用户为什么他们被循环播放的消息,当然。
作为新手,弄不清楚在哪里放置声明可能有点尴尬,所以这里是:
float amount;
for (;;)
{
amount = GetFloat();
if ( amount >= 0 )
break;
printf("Please provide a positive value.\n");
}
float cents = 100.0 * amount;
float quarter = 0;
// etc.
您不能将 float amount
放在 { }
中,否则该变量将限定在该范围内,并且在 }
.
编写相同循环的更紧凑的方法是:
while( (amount = GetFloat()) < 0 )
printf("Please provide a positive value.");
但您可以使用您认为更合理的版本。