gpt4 book ai didi

C:组合 while 和 if 语句

转载 作者:太空宇宙 更新时间:2023-11-03 23:58:50 24 4
gpt4 key购买 nike

我正在尝试用 C 编写一个程序,它根据用户提供的输入调用两个函数之一。

如果用户输入“1”,程序应该说“你选择了 A”,如果用户输入“2”,程序应该说“你选择了 B”。我遇到的问题是,无论用户输入 1 还是 2(请参见屏幕截图),都会返回消息“您选择了 A”。

Selection 1

Selection 2

这是我的代码:

include <stdio.h>

void celsiusFahrenheit()
{
printf("You chose A");
}

void fahrenheitCelsius()
{
printf("You chose B");
}

int main()
{
int selection;
printf("Please enter '1' to convert celsius to fahrenheit, or enter '2' to convert fahrenheit to celsius: ");
scanf_s("%d", &selection);
while (selection < 1 || selection > 2)
{
printf("Please enter a valid entry of either 1 or 2: ");
scanf_s("%d", &selection);
}
if (selection = 1)
{
celsiusFahrenheit();
}
else
{
fahrenheitCelsius();
}
}

如果您能提供任何帮助,我将不胜感激!

最佳答案

您正在将一个整数常量分配给一个整数 (selection = 1) 并检查它的真值,它总是为真。正如评论中已经指出的那样,您可以使用 -Wall 选项来警告您,

warning: suggest parentheses around assignment used as truth value [-Wparentheses]

if (selection = 1)

~~~~~~~~~~^~~

或者像这样改变 if 条件:

 if (1 == selection)

如果你在上面的语句中犯了同样的错误(赋值),即使没有 -Wall 选项,编译器也会产生错误,你就可以在你的程序中避免这个错误。

关于C:组合 while 和 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53146213/

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