-2
テキストボックスで演算子の優先順位を制御する必要があります。 17.それを修正するには? 演算子の優先順位c#
テキストボックスで演算子の優先順位を制御する必要があります。 17.それを修正するには? 演算子の優先順位c#
あなたは演算子をソートし、
void Main()
{
var comparer = new OperatorComparer();
var operators = new[] { '+', '-', '*', '/' };
Array.Sort(operators,comparer);
}
public class OperatorComparer : IComparer
{
public int Compare(object x, object y)
{
var xv = (char)x;
var yv = (char)y;
if (xv == '*' || xv == '/')
{
if(yv == '*' || yv == '/')
return 0;
else
return -1;
}
else if (yv == '+' || yv == '-')
return 0;
return 1;
}
}
たIComparerのカスタムを提供することを確認してくださいこれは役立ちますが、すべてのコードを見ることなく、私はまだそれがparenthesiesを扱うことができないと仮定します。 AST構築パーサを調べると、実際の電卓関数を作成するのに役立ちます。
乗算の前後の括弧。コードは左から右に実行されます。また、将来的にはイメージだけでなく実際のコードも表示してください。あなたのイメージへのURLは、将来死んでしまうかもしれません。 –
どのように修正するのですか?あなたのコードは何ですか?あなたがそれを改善しようとするときに遭遇している難しさは何ですか? – gturri
あなたのコードは実際に表示されていませんが、優先順位の高い演算子を見つけるために複数回入力する必要があるようです。 –