2015-01-12 25 views
0

我正在爲學校做一些練習並遇到問題。 當我嘗試對數組中的字符進行計數時,它只是給出數組本身。 任何人都可以告訴我我錯過了什麼嗎?代碼是用C#編寫的。在我的C#計數中丟失了整數代碼

public static int CountFor(int n) 
{ 
     int count = 0; 

     int[] a = new int[] {n}; 
     for (int i = 0; i < a.Length; i++) 
     { 
      count += i; 
     } 
     return count; 
} 

,並在主顯示結果:

Console.WriteLine(CountFor(1024)); 
Console.ReadKey(); 
+4

Visual Studio中有一個內置的調試器,它的工作速度更快,比在Stack Overflow上發佈更準確,更令人滿意。放置一個斷點(F9)並遍歷代碼(F10)並檢查變量以查看代碼正在執行的操作。代碼'a = new int [] {n}'沒有達到你期望的效果,這是你問題的根源。通過檢查它,你可以僞造你的問題陳述 - 「它只是給出數組本身_」,事實並非如此。 – CodeCaster

回答

5

變化

new int[] {n} 

new int[n] 

隨着new int[] {n},你有1Ë一個數組lement as n

閱讀:Arrays Tutorial

您可以輕鬆地使用Enumerable.RangeEnumerable.Sum方法來簡化你的方法等;

public static int CountFor(int n) 
{ 
    return Enumerable.Range(1, n).Sum(); 
} 
+0

感謝您的快速回答! –

+0

但控制檯給回523776,而它應該返回4,因爲1024包含4個整數。你能解釋一下嗎? –

+2

@Johan你的代碼添加了'1 + 2 + 3 + ... + 1024'。你可以使用調試器爲你自己找到它。如果你想計算一個整數中的位數,這是一個不同的問題,這是在[我怎樣才能得到一個數字的總數位數?](http://stackoverflow.com/questions/4483886 /何燦I-GET-A-計數的最總用戶號碼的位數-IN-A-數)。 – CodeCaster

1

您需要使用new int[n],否則你生成長度爲1的新陣列傳遞整數作爲內容數組的

+0

感謝您的解釋 –

相關問題