C语言计算器:不使用if语句实现运算
以下是不使用if语句的纠正版本:
#include <stdio.h>
int main() {
char c;
int a, b;
int result = 0;
printf("输入a运算符b: ");
scanf("%d%c%d", &a, &c, &b);
// 根据运算符进行相应的运算
switch (c) {
case '*':
result = a * b;
break;
case '/':
result = (b != 0) * (a / b); // 除数不为0时,结果为a/b,否则结果为0
break;
case '%':
result = (b != 0) * (a % b); // 除数不为0时,结果为a%b,否则结果为0
break;
default:
result = 0; // 无效的运算符,结果为0
break;
}
// 输出结果
printf("Result: %d\n", result);
return 0;
}
在这个修改后的版本中,我们使用了条件表达式(ternary operator)来替代if语句。在乘法运算中,没有使用条件表达式,而在除法运算和求余运算中,我们使用(b != 0) * (运算结果)来实现当除数不为零时,结果为实际运算结果,否则结果为0。
这样我们避免了使用if语句,符合您的要求同时实现了相同的功能。
原文地址: https://www.cveoy.top/t/topic/uA0 著作权归作者所有。请勿转载和采集!