C言語なら俺に聞け! Part 101
■ このスレッドは過去ログ倉庫に格納されています
0677デフォルトの名無しさん
05/02/07 21:36:26if (isdigit(*expression) {
m = strtol(expression, &expression);
push(m);
} else {
switch (*expression++) {
case '+':
m = strtol(expression, &expression);
push(m);break;
case '-':
m = -(strtol(expression, &expression));
push(m);break;
case '*':
m = strtol(expression, &expression);
pop(&n);
m = n * m;
push(m);break;
他の演算子たち
}
スタックの中身を合計
これで累乗を
pop(&n);
if (n>0) {
n = -n;
m = -(pow(n, m));
} else
pow(n, m);
とすると式の始めがマイナスの記号の時正しくない結果になってしまいます。
なにかいい方法があれば教えてください。
■ このスレッドは過去ログ倉庫に格納されています