我正在做一些初學者工作在C#上,使用visual studio。我必須計算用戶輸入到數組中的最小數字。我需要編寫代碼來手動完成。這是我有什麼相關的。將變量設置爲數組中的第一個值 -
public partial class Form1 : Form
{
//Declare and initialise variables to be used in app.
int[] markArray = new int[10]; //Declare an array of integers to hold entered user values
int arrayPointer = 0; //Declare array pointer - This will be incremented after each function is carried out, so that the next user entered number will be placed in the next index position in the array.
int lowestMark = 0; //Declare lowest mark
private void buttonAdd_Click(object sender, EventArgs e) //on a button click within the app
{
try //Test value enter is number
{
markArray[arrayPointer] = Convert.ToInt32(textEntry.Text); //Take value from text box and place in array cell if it is a int
}
catch //Catch non ints
{
MessageBox.Show("You must enter a number "); //if not int display error messsage
}
int lowestMark = markArray[0]; // Set variable "lowestMark" to the value in the first position of the array.
for (int i = 0; i < 10; i++)
{
if (markArray[i] < lowestMark) // if there is an index with a value lower than the value assigned to "lowestMark"
{
lowestMark = markArray[i]; //Set this new lower value as the "lowestMark"
}
}
arrayPointer++; //Increment array pointer
}
所以無論哪種方式我已經與它擺弄的lowestMark
值始終是相同的值,我給它時,我聲明。如果我在申報時輸入set it to 100
,那麼運行時就會顯示爲最低標記。所以它會出現這樣的行,將其設置爲數組中的索引0中的值什麼也不做。即使通過輸入10個數字來填充數組中的每個索引,它仍將讀爲0.我不知道爲什麼,這很奇怪,因爲我試圖做的事似乎很簡單。
Enter a value into markArray
,在index
通過arrayPointer
決定,這starts at 0.
Set lowestMark
以在同一位置上的相同的值。遞增arrayPointer,以便下一個值將被輸入到索引1中。
該程序有一些其他的小函數,它在該按鈕上單擊時執行,但我已將它們移除以僅保留不起作用的東西
而不是try/catch使用int.TryParse()。例外情況不應用於流量控制。 –
面對這樣的問題,我會給你最好的建議:按F5並逐步調試。 – rcdmk
我會在調試器中運行它,並確保變量值是您所期望的。我對你使用'arrayPointer'感到困惑,並懷疑是這個問題。 –