2012-10-24 70 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找到更多关于数学课的信息。