2016-04-14 35 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

Sorunuz biraz belirsiz. Problemini daha fazla açıklayabilir misin? –

+0

[Max] (https://msdn.microsoft.com/en-us/library/system.linq.enumerable.max (v = vs.110) .aspx) ve [Min] 'i (https: // msdn. dizinizdeki en büyük sayıyı veya en küçük sayıyı bulmak için microsoft.com/en-us/library/system.linq.enumerable.min(v=vs.110).aspx). – Icemanind

cevap

1

şu yardımcı olacaktır:

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();  
} 

ihtar: senin dizi boşsa, varsayılan min ve max olarak Int32.MaxValue ve Int32.MinValue olmasını istemeyebilir. Bu davayı ayrı ayrı ele almanız gerekecek.

+0

Bu en verimli çözüm, bence. –

+0

Teşekkürler, yardımcı oldu –

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

niçin oyların olduğunu açıklamak ister misiniz? Dizinin minimumunu ve maksimumunu nasıl bulacağını bilmek istiyor. –

+0

Katılıyorum, aradığım cevap bu! –

+0

Nedeni neden düşürüldü. Bir vardir. :) Ancak, OP'nin kodundaki mevcut döngüdeki maksimum ve min değerini, tüm elemanlar üzerinden iki kez daha fazla döngüden ziyade hesaplamak daha verimli olacaktır. –

İlgili konular