gpt4 book ai didi

c - 我的 C do while 循环不会执行

转载 作者:行者123 更新时间:2023-11-30 15:38:25 24 4
gpt4 key购买 nike

我的程序任务是编写一个循环程序来计算美元兑欧元。我的代码如下所示

#include <stdio.h>


int main(void)

{
double USD, euro;
char again;

do
{
printf("Please enter the amount of USD you want to convert to Euros> ");
scanf_s("%lf", &USD);

euro=USD * 0.73209;

printf("%4.2f USD equals %4.2f Euros.", USD, euro);
printf("Do you want to convert another amount (y/n)?");
scanf_s("%c", &again);
}

while (again == 'y' || again == 'Y');


return 0;
}

当我运行该程序时,它会执行,允许我输入美元值,给我正确的欧元值,然后当提示输入 y/n 时,它就会退出。

最佳答案

正如其他人所解释的,您的问题是由于 \n 保留在 STDIN 中。

要跳过它,只需替换

scanf_s("%c", &again);

scanf_s(" %c", &again);

这是 scanf 功能的一部分:

White-space characters: blank (' '); tab ('\t'); or newline ('\n'). A white-space character causes scanf to read, but not store, all consecutive white-space characters in the input up to the next non–white-space character. One white-space character in the format matches any number (including 0) and combination of white-space characters in the input.

http://msdn.microsoft.com/en-us/library/kwwtf9ch.aspx

对于您的第一次 scanf

scanf(" %lf", &USD);

也可能有帮助。

关于c - 我的 C do while 循环不会执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21742538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com