我想用C语言制作一个计算器。当我接受用户的输入时,如果不是来自+、-、*或/,我想打印"请输入运算符"。我的代码是这样的:
#include<stdio.h>
#include<math.h>
int main(){
int sayi1,sayi2;
char operator;
printf("HESAP MAKINESI V1.0n");
printf("Islemi giriniz (+,-,*,/):n");
scanf("%c",&operator);
if(operator != char(+,-,*,/)){
printf("Please use a operator");
return 0;}}
但我的代码不起作用。我该怎么修?
这:
if(operator != char(+,-,*,/))
不是正确的C语法。字符常量用单引号括起来,您必须单独比较每个字符。
if ((operator != '+') && (operator != '-') && (operator != '*') && (operator != '/')) {
这里,如果两个操作数都为true,则逻辑AND运算符&&
计算为true。
在这种情况下,我宁愿使用switch .. case
而不是if
IMO更容易读取和维护
void foo(int ch)
{
switch()
{
case '+':
case ':':
case '-':
case '*':
case '/':
/* do something */
break;
default:
/* do something if another chars */
break;
}
}