2016-04-14 91 views
1
private void button1_Click(object sender, EventArgs e) 
{ 
    int[] m = new int[1000]; 
    int n = textBox1.Lines.Lenght; 
    int i; 
    int k = 0; 
    int sum = 0; 
    int product = 1; 
    int average = 0; 

    for (i = 0; i < n; i++) 
    { 
     try 
     { 
      m[k] = Convert.ToInt32(textBox1.Lines[i]); 
      sum = sum + m[k]; 
      product = product * m[k]; 
      average = sum/n; 
     }  
     catch 
     { 
      MessangeBox.Show("Буквы нельзя!!"); 
      k++; 
     } 
    } 

    label10.Text = n.ToString(); 
    label11.Text = sum.ToString(); 
    label12.Text = product.ToString(); 
    label13.Text = average.ToString();  
} 
+0

你的问题有点不清楚。你能解释一下你的问题吗? –

+0

使用[Max](https://msdn.microsoft.com/en-us/library/system.linq.enumerable.max(v = vs.110).aspx)和[Min](https:// msdn。 microsoft.com/en-us/library/system.linq.enumerable.min(v=vs.110).aspx)查找数组中的最大数字或最小数字。 – Icemanind

回答

1

以下应该有所帮助:

private void button1_Click(object sender, EventArgs e) 
{ 
    int[] m = new int[1000]; 
    int n = textBox1.Lines.Lenght; 
    int i; 
    int k = 0; 
    int sum = 0; 
    int product = 1; 
    int average = 0; 
    int min = Int32.MaxValue; // will hold min value 
    int max = Int32.MinValue; // will hold max value 

    for (i = 0; i < n; i++) 
    { 
     try 
     { 
      m[k] = Convert.ToInt32(textBox1.Lines[i]); 
      sum = sum + m[k]; 
      product = product * m[k]; 
      if (m[k] < min) 
       min = m[k]; 
      if (m[k] > max) 
       max = m[k]; 
     }  
     catch 
     { 
      MessageBox.Show("Буквы нельзя!!"); 
      k++; 
     } 
    } 
    average = sum/n; //Computing average here is more efficient 
    label10.Text = n.ToString(); 
    label11.Text = sum.ToString(); 
    label12.Text = product.ToString(); 
    label13.Text = average.ToString();  
} 

警告:如果你的数组是空的,你可能不希望有Int32.MaxValue和Int32.MinValue作为默认的最小值和最大值。您需要分开处理该案件。

+0

我认为这是最有效的解决方案。 –

+0

谢谢,它有帮助 –

1
using System; 

using System.Collections.Generic; 

using System.Linq; 



int[] m = new int[1000]; 

// fill in the array here ..... 

int min = m.Min(); // find the minimum 

int max = m.Max(); // find the maximum 
+0

小心解释为什么有倒票?他想知道如何找到数组的最小值和最大值。 –

+0

我同意,这是我会寻找的答案! –

+0

不知道为什么它被downvoted。有一个upvote。 :)但是,计算OP代码中现有循环中的最大值和最小值会更有效,而不是在所有元素中循环多出两次。 –

相关问题