gpt4 book ai didi

不使用 switch case 将字符转换为算术运算符,即将 '+' 转换为 +

转载 作者:太空狗 更新时间:2023-10-29 15:13:56 26 4
gpt4 key购买 nike

void main()
{
char c;
int op;
int a=10,b=20,sum;

scanf("%c",&c);
if(c=='+')
op=1;
else if(c=='-')
op=2;
else if(c=='*')
op=3;

switch(op)//here i used switch but i don't want to use it
{
case 1: sum=a+b;
break;
case 2: sum=a-b;
break;
case 3: sum=a*b;
break;
}
printf("%d",sum);

}

当c包含c时输出应该是30总和应包含 30acb 应该被评估为 a+b 并且它应该包含 30

最佳答案

你可以简单地这样做:

void main()
{
char c;
int a=10,b=20,sum;
scanf("%c",&c);
sum=(c=='+')?(a+b):((c=='-')?(a-b):((c=='*')?(a*b):0));
printf("%d",sum);
}

不要与 sum=(c=='+')?(a+b):((c=='-')?(a-b):((c== '*')?(a*b):0));。它实际上是这样做的:

if(c=='+')
sum=a+b;
else
{
if(c=='-')
sum=a-b;
else
{
if(c=='*')
sum=a*b;
else
sum=0;
}
}

运算符 (?:) 称为条件(三元)运算符。

语法:

condition ? expr_if_condition_is_true : expr_if_condition_is_false

如果条件为真,则返回 expression1。否则将返回 expression2。如您所见,该行中使用了 3 个嵌套条件运算符。

阅读有关条件运算符的更多信息 here .

关于不使用 switch case 将字符转换为算术运算符,即将 '+' 转换为 +,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22114433/

26 4 0
文章推荐: C 编程 - strlen 的功能
文章推荐: javascript - 使用 CSS 变换缩放