2012-10-24 110 views
5

我在查找用戶輸入的2個整數中的最大和最小數字。 首先我已經將字符串轉換爲int,然後將它們放入數組中,以便我可以操縱它們。我認爲我在將變量分配給數組時遇到困難。但我看不到任何變量賦值給它們的例子,這可能是我錯誤的地方。從數組中的2個數字中找出最大和最小數字

private void button1_Click(object sender, EventArgs e) 
    { 
     string txtbxnum1 = Int32.Parse(num1); 
     string txtbxnum2 = Int32.Parse(num2); 

     int[] numbers = new int[2] {0,1}; 
     int numbers [0] = num1; 
     int numbers [1] = num2; 

     int maximumNumber = Max.numbers(); 
     int minimumNumber = Min.numbers(); 
     MessageBox.Show (maximumNumber.Text); 
    } 

我會很高興任何幫助或方向。

+1

數字是否必須進入數組?否則,這是一個聲明:'maximumNumber = Math.Max(txtbxnum1,txtbxnum2);' –

+2

這段代碼是錯誤的,看起來你應該閱讀一些入門C#書籍的前幾章。 –

回答

2

有點混亂的語法。您的代碼是而不是C#語言有效代碼。

你必須做這樣的事情:

var numbers = new int[]{0,1,567,4,-5,0,67....}; 

和最大/最小簡直就像

var maximum = numbers.Max(); 
var minimum = numbers.Min(); 
2

你應該打電話Math.MinMath.Max兩者接受兩個整數作爲參數。

讓我知道如果這不是足夠的細節。

0
int maximumNumber = Math.Max(numbers[0],numbers[1]); 
int minimumNumber = Math.Min(numbers[0],numbers[1]); 

MessageBox.Show(maximumNumber + " " is the largest and " + minimumNumber + " is the smallest"); 

這就是說你不應該真的像這樣訪問數組值,但它會爲初學者工作。

5

如果您只有兩個數字,則不需要數組:System.Math提供了查找兩個數字中較小和較大的數字的功能,分別爲Math.MaxMath.Min

// Int32.Parse takes a string, and returns an int, not a string: 
int n1 = Int32.Parse(num1); 
int n2 = Int32.Parse(num2); 
// Math.Min and Math.Max functions pick the min and max 
int min = Math.Min(n1, n2); 
int max = Math.Max(n1, n2); 
// Show both numbers in a message box in one go using String.Format: 
MessageBox.Show(string.Format("Min:{0} Max:{1}", min, max)); 
0

我不太明白與文本框和奇怪的解析,然後設置爲一個字符串,但假設NUM1和NUM2是用戶輸入整數的互動

private void button1_Click(object sender, EventArgs e) 
{ 
    int maximumNumber = Math.Max(num1, num2); 
    int minimumNumber = Math.Min(num1, num2); 

    MessageBox.Show (maximumNumber); 
} 
+0

private void button1_Click(object sender,EventArgs e) int1 = Convert.ToInt32(txtbxnum1.Text); int num2 = Convert.ToInt32(txtbxnum1.Text); int maximumNumber = Math.Max(num1,num2); int minimumNumber = Math.Min(num1,num2); MessageBox.Show(maximumNumber.ToString()); } – user1735367

0

有幾個代碼中的錯誤。

string txtbxnum1 = Int32.Parse(num1); 

Int32.Parse取入的字符串並返回一個int。但是,您正試圖將其分配給string。它應該是

int txtbxnum1 = Int32.Parse(num1); 

分配的數組是這樣的:

int[] numbers = new int[2] {0,1}; 

簡單地創建新的數組,可容納兩個整數,並與價值01 prefills他們。這不是你想要做的。據我所知,你甚至不需要在這裏使用數組,除非你在代碼中的其他地方使用它。

通過使用Math類中的方法,可以找到MaxMin值。

int minimumValue = Math.Min(txtbxnum1,txtbxnum2); 
int maximumValue = Math.Max(txtbxnum1,txtbxnum2); 

你可以在MSDN找到更多關於數學課的信息。