2016-04-17 21 views
-2

テキストボックスで演算子の優先順位を制御する必要があります。 17.それを修正するには? enter image description here演算子の優先順位c#

+3

乗算の前後の括弧。コードは左から右に実行されます。また、将来的にはイメージだけでなく実際のコードも表示してください。あなたのイメージへのURLは、将来死んでしまうかもしれません。 –

+2

どのように修正するのですか?あなたのコードは何ですか?あなたがそれを改善しようとするときに遭遇している難しさは何ですか? – gturri

+0

あなたのコードは実際に表示されていませんが、優先順位の高い演算子を見つけるために複数回入力する必要があるようです。 –

答えて

0

あなたは演算子をソートし、

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構築パーサを調べると、実際の電卓関数を作成するのに役立ちます。

関連する問題