2016-03-22 8 views
0

私は印刷したいですCL(幸運を数える)がCUL(不運をカウントする)より大きいなら準備ができています。 私の基準はNであり、配列Aは最大Nであり、配列の内容は個々のコンテンツが偶数か奇数かをチェックします。でもCL ++、または他のCUL ++出力を取得できません。代わりは何ですか?

static void Main(string[] args) 
{ 
    int N = int.Parse(Console.ReadLine()); 
    int[] A = new int[100]; 
    int cL=0; int CUL = 0; 
    int j; 

    for (j = 0; j < N; j++) 
    { 
     A[j] = int.Parse(Console.ReadLine()); 
     if (A[j] %2!=0)) 
     { 

      CUL = CUL++; 
     } 
     else 
     { 
      cL = cL++; 
     } 
    } 
    if (cL>CUL) 
    { 
     Console.WriteLine("Ready for battle"); 
    } 
    else 
    { 
     Console.WriteLine("Not ready"); 
    } 
} 
+0

はまた、より多くのそれらを作る。..またあなたの変数の命名規則と一致してすぐに問題を発見したかもしれない 'Debugger'を使用する必要があり、ユーザからのサイズを取得が、サイズ100でそれを初期化します意味があるこの方法あなた自身はそう混乱しないでしょう – MethodMan

答えて

1

はマイナーエラーを無視した場合、あなたは、あなたはおそらく、Visual Studioのを通してそれを最後にConsole.ReadLine();実行されている必要があり、プログラムが上あまりにも早く閉じて、あなたは出力を見ることができません完了。ユーザーが100以上 何も入力した場合、あなたは のうち、インデックス」の例外で終わるだろうと想像だけでなく、配列サイズのためNを使用することにより

  • 後で、同じようにコードを修正することができます範囲"。

  • インクリメント演算子の結果を割り当てる必要はありません。変数を更新します。 Postfix演算子は値をインクリメントしますが、次の使用法では表示されますが、結果を返すので、いつも0になります。

コードは次のようになります。

int N = int.Parse(Console.ReadLine()); 
int[] A = new int[N]; //Use the input limit here on array size 
int cL = 0; int CUL = 0; 
int j; 
for (j = 0; j < N; j++) 
{ 
    A[j] = int.Parse(Console.ReadLine()); 
    if (A[j] % 2 != 0) 
    { 

     CUL++;//no need to reassing result 
    } 
    else 
    { 
     cL++; 
    } 

} 
if (cL > CUL) 
{ 
    Console.WriteLine("Ready for battle"); 
} 
else 
{ 
    Console.WriteLine("Not ready"); 
} 
Console.Readline(); // Just to halt the program to see the output. 
+0

私は毎回ゼロにカウント値を割り当てているのですか?私は出力を得ました –

+0

@BhavaniChandra、はい、 'CUL ++'を実行すると値がインクリメントされますが、インクリメント値は次回の使用時に利用できるので、 'CUL = 0'を起動してから' CUL = CUL ++ ; 'これは' CUL'を '1 'だけインクリメントさせるが、その増加値は次回の使用時に利用可能になるので' CUL'に '0'が割り当てられ、インクリメントされた値は上書きされます。従って、常に「0」のままである。詳細については、http://stackoverflow.com/questions/7812178/how-do-prefix-x-and-postfix-x-operations-work – Habib

+0

@ Habib Console.Readkey()の最後を参照してください –

0

問題が

CUL = CUL++; 

であり、それがあるとき

cL = cL++; 

にあなたがCUL(およびcL)へCULを割り当てます0にして値を大きくするまたA配列宣言で問題を抱えている右CUL 1にのみ後の割り当ての、それ

if (A[j] %2!=0)) 
{ 
    CUL++; 
} 
else 
{ 
    cL++; 
} 

隣itreation CULcLまだ0になります。変更でなります。あなたは、私が

int[] A = new int[N]; 
関連する問題