2016-04-14 17 views
0
class Program 
{ 
    static void Main(string[] args) 
    { 
     Random rnd = new Random(); 
     int[] mass = new int[10]; 
     for (int i = 0; i < mass.Length; i++) 
     { 
      mass[i] = rnd.Next(0, 10); 
     } 
     Console.WriteLine("display random Massive: \n"); 
     foreach (var i in mass) 
     { 
      Console.Write("{0} ", i); 
     } 
     Console.WriteLine("\n"); 
     int max = mass.Max(); 
     Console.WriteLine("max value in Massive = {0}", max); 

     Console.ReadLine(); 
    } 
} 

mein Code gibt mir Max-Wert in massiv, ich brauche max ungerade Wert. Wie bekomme ich den maximalen ungeraden Wert?erhalten max ungerade Zahl

+0

Zur Verdeutlichung: Sie sind sich der Logik hinter ungeraden Werten bewusst, nicht wahr? Ungerade Werte können durch geteilt werden. Deshalb muss x Modulo 2 0 sein und das ist die Bedingung, die Sie implementieren müssen. Deshalb enthalten alle Antworten x% 0 ... – Jannik

Antwort

0

nur

ändern
int max = mass.Max(); 

zu

int max = mass.Where(x=>(x%2)==1).Max(); 
2

Sie Linq verwenden kann dies leicht zu tun

mass.Where (x => x % 2 != 0).Max(); 
1

Sie können diese leichter mit Linq tun:

static void Main(string[] args) 
{ 
    Random rnd = new Random(); 
    int[] mass = Enumerable.Range(0, 10).Select(i => rnd.Next(0, 10)).ToArray(); 
    Console.WriteLine("display random Massive: "); 
    Console.WriteLine(string.Join(" ", mass)); 
    Console.WriteLine(); 
    int max = mass.Where(i => (i & 1) == 1).Max(); 
    Console.WriteLine("max value in Massive = {0}", max); 

    Console.ReadLine(); 
} 

Erläuterungen:

  • ich das Array initialisieren um 10 Erzeugung von Zufalls Zahlen, umwandeln sie in ein Array
  • I-Ausgang sie string.Join
  • mit Where mit Tests mit, dass das letzte Bit Filter für ungerade Zahlen
  • Max auf nur diese ungerade Zahlen Aufruf gesetzt ist.

Beachten Sie, dass Sie nicht brauchen, \n als Console.WriteLine zu verwenden, fügt eine neue Zeile am Ende.

0

Ich asuming Sie ein Anfänger wie ich und verstehe nicht, Linq noch

eine Liste Deklarieren ungerade Werte für das Halten

List<int> oddList = new List<int>(); 

T hen in Ihrer foreach Methode

foreach (var i in mass) 
    { 

     if (i % 2 != 0) //check that number is odd 

      { 
        oddList.Add(i); //add odd randoms to list 

      { 

    } 

Console. WriteLine(oddList.Max().ToString()); 
Verwandte Themen