我希望此switch语句为变量选项初始化正确的值,但未初始化,因此不允许if语句工作。
#define arti 2.05
int main(void)
{
char ch;
float option = 0;
while(ch = getchar())
{
ch = toupper(ch);
switch(ch)
{
case 'A':
option = arti; //value of arti is 2.05
break;
case 'B':
option = beets;
break;
default:
printf("Enter a valid value.\n");
continue;
break;
}
if(option == arti)
{
printf("arti printed successfully!\n");
}
}
return 0;
}
我得到的输出是这个:
a //input
Enter a valid value. //output
我不知道问题出在哪里,我已使这段代码尽可能简短地向您解释了问题。请帮助我。
您正在将float
值(option
)与double
常数(arti
)进行比较,这会引起问题。要将arti
定义为(单精度)float
,请添加f
后缀:
#define arti 2.05f