#include <stdio.h>
#include <cs50.h>
float euro (float usd);
int main (void)
{
float usd = 1.00;
do
{
printf("How many USD you got?\n");
usd = get_float();
}
while(usd < 0);
{
printf("enter something greater than zero please!\n");
}
}
float euro (float usd)
{
float d = usd * 0.84;
return(d);
}
这是我的代码。我试着编写一个将美元兑换成欧元的函数,然后可以回想起函数,但我感到困惑,现在无论每个输出是什么,“请输入大于零的东西!”
答案 0 :(得分:1)
您的while
未与其下方的printf
分组,但上方有do
。
让我们重新格式化以使区别更清晰:
do
{
printf("How many USD you got?\n");
usd = get_float();
} while(usd < 0);
{
printf("enter something greater than zero please!\n");
}
do..while
循环继续,直到您输入正值。之后,您有一个始终运行的块。
您可能希望在循环中放置if
检查以查看是否应该打印错误消息:
do
{
printf("How many USD you got?\n");
usd = get_float();
if (usd < 0) {
printf("enter something greater than zero please!\n");
}
} while(usd < 0);