2016-04-11 16 views
1

En düşük ve en yüksek girilen tamsayı arasındaki farkı almakta sorun yaşıyorum. Bu benim kodum şu ana kadar, ama neden hata mesajları almaya devam ettiğimi anlamıyorum.C# 7 tamsayıdan en fazla farkı alın

using System; 

class Program 
{ 
    public static int array(int[] numbers) 
    { 
     int minint = array(numbers); 
     int maxint = array(numbers); 
     foreach (int value in array(numb) 
     { 
      if (value < minint) minint = value; 
      if (value > maxint) maxint = value; 
     } 

     return maxint - minint; 
    } 
    static void Main(string[] args) 
    { 
     int[] numbers = new int[7];  
     for (int i = 0; i < 7; i++) 
     {    
      Console.Write("Enter number {0}: ", i + 1); 
      numbers[i] = Convert.ToInt32(Console.ReadLine());    
     } 
     Console.WriteLine("Difference between min and max is: {0} ", array(numbers)); 
     Console.ReadLine(); 
    } 
} 
+2

Hangi hatalarınız var? "foreach (int cinsinden int (değer)" Muhtemelen foreach (sayılarda int değeri) olmasını istersiniz – Valentin

+0

Aldığım: Hata \t CS1529 \t A kullanım deyimi, extern diğer ad bildirimleri dışında ad alanında tanımlı tüm diğer öğelerden önce gelmelidir – Tom

+3

Sizin kodunuz, metodun kendi kendine –

cevap

6
i Min() ve Max()

public static int array(int[] numbers) 
{ 
    return numbers.Max() - numbers.Min(); 
} 

aksi takdirde array yöntem genellikle fark pozitif değer olması ment bu

public static int array(int[] numbers) 
{ 
    int minint = numbers[0]; 
    int maxint = numbers[0]; 
    foreach (int value in numbers) 
    { 
     if (value < minint) minint = value; 
     if (value > maxint) maxint = value; 
    } 
    return maxint - minint; 
} 

gibi görünmelidir varolan yöntemlerle gitmek istiyorum

- Yani negatif sayılar için Math.Abs() veya item = item < 0 ? -item : item; mutlak değerini almalısınız dizininizi küçültün

+1

true, ancak max ve min sayıları ve çıkarılıyor, ancak bu durumda iki kez 'sayıları' değerlendiriyorsunuz. – rbm

+0

çok daha kısa bir yöntemdir ve – Vladimir

+0

sayılır. Tamam, bu bir performans meselesidir, ancak 7 el ile yazılmış numaralarda tercih ederim okunabilirlik – fubo