我正在從CodeChef的this問題上工作,我正在用一個數組來初始化一個小數組,這個數組是我用戶輸入的大小進行初始化的,但是我得到了返回值數組似乎已經初始化自己,我不知道爲什麼。我知道我可以查看其他人的意見和'複製和粘貼',但我想知道我做錯了什麼,以及如何解決它,所以我可以實現我自己的代碼,而不是別人。陣列沒有初始化或正確填充其索引
這裏是理論的樣子:
string _input1 = Console.ReadLine().Replace(" ", "");// Get number of items
int[] _weightsArray = new int[_input1[0]];// Set size to number of items
一旦用戶輸入的數字說,數字5和3,該陣列應該接受(在0索引的數量是5集該數組指向該索引),然後用戶輸入由空格分隔的5個隨機數字,然後將這些數字填充到數組中。
但是在這個例子中,數組沒有被設置爲索引大小5,它被設置爲53的大小,並且當數組在每個索引處被49填充時。
下面是完整的代碼:
Int16 _testCases = Convert.ToInt16(Console.ReadLine());// Get test cases
for (int i = 0; i < _testCases; i++) {
string _input1 = Console.ReadLine().Replace(" ", "");// Get number of items
string _weights = Console.ReadLine().Replace(" ", "");
int[] _weightsArray = new int[_input1[0]];// Set size to number of items
for (int j = 0; j < _weights.Length; j++) {
_weightsArray[j] = Convert.ToInt32(_weights[j]);// Add weights to array
}
for (int k = 0; k < _weightsArray.Length; k++) {
Console.WriteLine(_weightsArray[k]);
}
}
Console.ReadLine();
}
正如你可以看到_weightsArray應該設置爲_input1 [0],並通過調試,我可以證實,_index1 [0]是逸岸INT端通過用戶,但由於某種原因,編譯器完全忽略了這一點。
下面是實際的輸出,所述陣列的尺寸大於5,並且不包含任何的給定數字(2,2,2,2,)
爲什麼給我隨機指數大小和每個指數50?
三江源
我在這個循環中看到的第一個錯誤'for(int k = 0; ...'你正在使用'i'作爲索引而不是'k' –
好的眼睛謝謝修復它 – AnonDCX
和結果? –