gpt4 book ai didi

c - 为什么当我在 "else"语句后添加 "if"时,代码无法正常运行?

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

我正在编写从用户处获取任何数字的代码,它告诉用户输入是否包含 3,6 或 9。否则,代码应该打印出相同的输入。我设法正确地得到“if”,如果用户输入任何数字,代码会告诉它是否包含 3、6 或 9。但是,当我添加“else”部分时,代码不再起作用,并且它不会告诉插入的数字是否包含 3、6 或 9。

此代码可以检测任何数字:

int i;

printf("Enter a number:");
scanf_s("%d", &i);
int L = i;
int n = 0;

while (i > 0)
{
n = i % 10;
i = i / 10;
if (n == 3 || n == 6 || n == 9)
{
printf("There is a 3 or 6 or 9.");
break;
}

将这些行添加到上面的代码中不会使其正常工作

else
{
printf("%d", L);
break;
}

输入:300

不带 else 语句的输出:“有一个 3 或 6 或 9。”(正确)

使用 else 语句输出:300(不正确)

这是为什么?

最佳答案

按以下方式重写循环

do
{
n = i % 10;
if (n == 3 || n == 6 || n == 9)
{
printf("There is a 3 or 6 or 9.");
break;
}

} while ( i /= 10 );

if ( i == 0 ) printf("%d", L);

否则,如果数字的下一个数字(例如 0)不等于 3、6 或 9,则执行 else 语句并退出循环。

关于c - 为什么当我在 "else"语句后添加 "if"时,代码无法正常运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57810439/

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