5
A
答えて
6
簡単な方法は、switchステートメントを使用することです
switch (op)
{
case '+':
res = x + y;
break;
case '-':
res = x - y;
break;
case '*':
res = x * y;
break;
}
3
私はあなたがそこに書いているような方法はないと思うが、あなたは
int do_op(char op, int a, int b)
{
switch(op)
{
case '+':
return a+b;
break;
case '-':
return a-b;
break;
case '*':
return a*b;
break;
case '/':
return a/b;
break;
default:
throw std::runtime_error("unknown op")
}
}
0
あなたがかもしれないようなハック何かができます旧式の#defineを使用してください:
#define op +
std::cout << 6 op 1;
ただし、使用が制限されています。
純粋なC++でこれを行うには、スイッチ構文を明示的に使用するか、外部ライブラリ(tetzfamily.com/temp/EvalDoc.htmやcodeproject.com/Articles/7939/C- based-Expression-Evaluation-Library)を参照)。
もう一つの方法は、BCのように、外部プログラムを使用することです:あなたは、後で結果を使用したい場合は、popen機能やC++ equivalentをチェック
char op = '+';
std::string s;
s += "6";
s += op;
s += "4";
system(("echo " + s + "|bc").c_str());
。マップ、 `coutの<<演算子[OP](6、1)で
0
public class ArithmeticOps {
static int testcase11 = 11;
static int testcase12 = 3;
static char testcase13 = '/';
public static void main(String args[]){
ArithmeticOps testInstance = new ArithmeticOps();
int result = testInstance.compute(testcase11,testcase12,testcase13);
System.out.println(result);
}
public int compute(int a, int b,char operator){
int i=0;
switch(operator)
{
case '+' :
i= a+b;
break;
case '-' :
i= a-b;
break;
case '*' :
i= a*b;
break;
case '/' :
i= a/b;
break;
case '%' :
i= a%b;
break;
case '^' :
i= a^b;
break;
default:
i=0;
}
return i;
}
}
+0
これはすべての算術演算を対象としています。 – user2722684
;' – chris
あなたは '6 OP 1 '構文を維持したい場合は、いいえ、それは不可能です。 –
コンパイルされた命令と実行時データについて考えます。 –