none
How to writeline my sorted arry? RRS feed

  • Question

  • I have a problem! I can't Console.Writeline my sorted array. Any idea of what to do?

    Here is the cod i have so far

            {
                int Peter = 0;
                int Daniel = 0;
                int Kim = 0;
                int Philip = 0;
                int Arild = 0;
                int Junas = 0;
                int Hans = 0;
                int Hugo = 0;
                int Linus = 0;
                int Simon = 0;
                int Johan = 0;
                int Sigurd = 0;
                int Robert = 0;
                int Karl = 0;
                int Erik = 0;
                int Martin = 0;
                int Isac = 0;
                int Isak = 0;
                int Pakorn = 0;
                int Nils = 0;

                int[] tävlande = new int[20];
                tävlande[0] = Peter;
                tävlande[1] = Daniel;
                tävlande[2] = Kim;
                tävlande[3] = Philip;
                tävlande[4] = Arild;
                tävlande[5] = Junas;
                tävlande[6] = Hans;
                tävlande[7] = Hugo;
                tävlande[8] = Linus;
                tävlande[9] = Simon;
                tävlande[10] = Johan;
                tävlande[11] = Sigurd;
                tävlande[12] = Robert;
                tävlande[13] = Karl;
                tävlande[14] = Erik;
                tävlande[15] = Martin;
                tävlande[16] = Isac;
                tävlande[17] = Isak;
                tävlande[18] = Pakorn;
                tävlande[19] = Nils;

                Random rnd = new Random();
                for (int i = 0; i <20; i++)
                {
                    int p = rnd.Next(2);
                    if(p == 0)
                    {
                        Peter = Peter + 20;
                    }
                    if(p == 1)
                    {
                        Peter = Peter +10;
                    }
                    if(p == 2)
                    {
                        Peter = Peter +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int d = rnd.Next(2);
                    if (d == 0)
                    {
                        Daniel = Daniel +20;
                    }
                    if (d == 1)
                    {
                        Daniel = Daniel +10;
                    }
                    if (d == 2)
                    {
                        Daniel = Daniel +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int k = rnd.Next(2);
                    if (k == 0)
                    {
                        Kim = Kim +20;
                    }
                    if (k == 1)
                    {
                        Kim = Kim +10;
                    }
                    if (k == 2)
                    {
                        Kim = Kim +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int ph = rnd.Next(2);
                    if (ph == 0)
                    {
                        Philip = Philip +20;
                    }
                    if (ph == 1)
                    {
                        Philip = Philip +10;
                    }
                    if (ph == 2)
                    {
                        Philip = Philip +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int ahg = rnd.Next(2);
                    if (ahg == 0)
                    {
                        Arild = Arild +20;
                    }
                    if (ahg == 1)
                    {
                        Arild = Arild +10;
                    }
                    if (ahg == 2)
                    {
                        Arild = Arild +0;
                    }
                }
                for (int i = 0; i <20; i++)
                {
                    int j = rnd.Next(2);
                    if(j == 0)
                    {
                        Junas = Junas + 20;
                    }
                    if(j == 1)
                    {
                        Junas = Junas +10;
                    }
                    if(j == 2)
                    {
                        Junas = Junas +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int h = rnd.Next(2);
                    if (h == 0)
                    {
                       Hans  = Hans +20;
                    }
                    if (h == 1)
                    {
                        Hans = Hans +10;
                    }
                    if (h == 2)
                    {
                        Hans = Hans +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int hu = rnd.Next(2);
                    if (hu == 0)
                    {
                        Hugo = Hugo +20;
                    }
                    if (hu == 1)
                    {
                        Hugo = Hugo +10;
                    }
                    if (hu == 2)
                    {
                        Hugo = Hugo +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int l = rnd.Next(2);
                    if (l == 0)
                    {
                        Linus = Linus +20;
                    }
                    if (l == 1)
                    {
                        Linus = Linus +10;
                    }
                    if (l == 2)
                    {
                        Linus = Linus +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int s = rnd.Next(2);
                    if (s == 0)
                    {
                        Simon = Simon +20;
                    }
                    if (s == 1)
                    {
                        Simon = Simon +10;
                    }
                    if (s == 2)
                    {
                        Simon = Simon +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int jo = rnd.Next(2);
                    if (jo == 0)
                    {
                        Johan = Johan+20;
                    }
                    if (jo == 1)
                    {
                        Johan = Johan +10;
                    }
                    if (jo == 2)
                    {
                        Johan = Johan +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int s = rnd.Next(2);
                    if (s == 0)
                    {
                        Sigurd = Sigurd +20;
                    }
                    if (s == 1)
                    {
                        Sigurd = Sigurd +10;
                    }
                    if (s == 2)
                    {
                        Sigurd = Sigurd +0;
                    }
                }
               for (int i = 0; i < 20; i++)
                {
                    int r = rnd.Next(2);
                    if (r == 0)
                    {
                        Robert = Robert +20;
                    }
                    if (r == 1)
                    {
                        Robert = Robert +10;
                    }
                    if (r == 2)
                    {
                        Robert = Robert +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int k = rnd.Next(2);
                    if (k == 0)
                    {
                        Karl = Karl +20;
                    }
                    if (k == 1)
                    {
                        Karl = Karl +10;
                    }
                    if (k == 2)
                    {
                        Karl = Karl +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int e = rnd.Next(2);
                    if (e == 0)
                    {
                       Erik = Erik +20;
                    }
                    if (e == 1)
                    {
                        Erik = Erik +10;
                    }
                    if (e == 2)
                    {
                        Erik = Erik +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int m = rnd.Next(2);
                    if (m == 0)
                    {
                        Martin = Martin +20;
                    }
                    if (m == 1)
                    {
                        Martin = Martin +10;
                    }
                    if (m == 2)
                    {
                        Martin = Martin +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int ic = rnd.Next(2);
                    if ( ic == 0)
                    {
                        Isac = Isac +20;
                    }
                    if (ic == 1)
                    {
                        Isac = Isac +10;
                    }
                    if (ic == 2)
                    {
                        Isac = Isac +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int ik = rnd.Next(2);
                    if (ik == 0)
                    {
                        Isak = Isak +20;
                    }
                    if (ik == 1)
                    {
                        Isak = Isak +10;
                    }
                    if (ik == 2)
                    {
                        Isak = Isak +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int pk = rnd.Next(2);
                    if (pk == 0)
                    {
                        Pakorn = Pakorn +20;
                    }
                    if (pk == 1)
                    {
                        Pakorn = Pakorn +10;
                    }
                    if (pk == 2)
                    {
                        Pakorn = Pakorn +0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int n = rnd.Next(2);
                    if (n == 0)
                    {
                        Nils = Nils +20;
                    }
                    if (n == 1)
                    {
                        Nils = Nils +10;
                    }
                    if (n == 2)
                    {
                        Nils  = Nils + 0;
                    }
                }
                Console.WriteLine("Peter slutade på " + Peter + " poäng");
                Console.WriteLine("Daniel slutade på " + Daniel + " poäng");
                Console.WriteLine("Kim slutade på " + Kim + " poäng");
                Console.WriteLine("Philip slutade på " + Philip + " poäng");
                Console.WriteLine("Arild slutade på " + Arild + " poäng");
                Console.WriteLine("Junas slutade på " + Junas + " poäng");
                Console.WriteLine("Hans slutade på " + Hans + " poäng");
                Console.WriteLine("Hugo slutade på " + Hugo + " poäng");
                Console.WriteLine("Linus slutade på " + Linus + " poäng");
                Console.WriteLine("Simon slutade på " + Simon + " poäng");
                Console.WriteLine("Sigurd slutade på " + Sigurd + " poäng");
                Console.WriteLine("Robert slutade på " + Robert + " poäng");
                Console.WriteLine("Karl slutade på " + Karl + " poäng");
                Console.WriteLine("Erik slutade på " + Erik + " poäng");
                Console.WriteLine("Martin slutade på " + Martin + " poäng");
                Console.WriteLine("Isac slutade på " + Isac + " poäng");
                Console.WriteLine("Isak slutade på " + Isak + " poäng");
                Console.WriteLine("Pakorn slutade på " + Pakorn + " poäng");
                Console.WriteLine("Nils slutade på " + Nils + " poäng");

                Array.Sort(tävlande);
                int a = tävlande[0];
                Console.WriteLine("Vinnare är: ... med {0} poäng", a);


    Sunday, October 29, 2017 11:31 AM

All replies

  • This will work:

    Array.Sort(tävlande);
    foreach (var a in tävlande)
    {
        Console.WriteLine("Vinnare är: ... med {0} poäng", a);
    }


    ~~Bonnie DeWitt [C# MVP]

    http://geek-goddess-bonnie.blogspot.com

    Sunday, October 29, 2017 2:24 PM
    Moderator
  • Hello Dacke2000,

    An array's assignment should be placed after the element finished assigning. Otherwise all elements of your array is set as initial values. I have edited your code as below.

    int Peter = 0;
                int Daniel = 0;
                int Kim = 0;
                int Philip = 0;
                int Arild = 0;
                int Junas = 0;
                int Hans = 0;
                int Hugo = 0;
                int Linus = 0;
                int Simon = 0;
                int Johan = 0;
                int Sigurd = 0;
                int Robert = 0;
                int Karl = 0;
               int Erik = 0;
                int Martin = 0;
                int Isac = 0;
                int Isak = 0;
                int Pakorn = 0;
                int Nils = 0;
    
                Random rnd = new Random();
                for (int i = 0; i < 20; i++)
                {
                    int p = rnd.Next(2);
                    if (p == 0)
                    {
                        Peter = Peter + 20;
                    }
                    if (p == 1)
                    {
                        Peter = Peter + 10;
                    }
                    if (p == 2)
                    {
                        Peter = Peter + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int d = rnd.Next(2);
                    if (d == 0)
                    {
                        Daniel = Daniel + 20;
                    }
                    if (d == 1)
                    {
                        Daniel = Daniel + 10;
                    }
                    if (d == 2)
                    {
                        Daniel = Daniel + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int k = rnd.Next(2);
                    if (k == 0)
                    {
                        Kim = Kim + 20;
                    }
                    if (k == 1)
                    {
                        Kim = Kim + 10;
                    }
                    if (k == 2)
                    {
                        Kim = Kim + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int ph = rnd.Next(2);
                    if (ph == 0)
                    {
                        Philip = Philip + 20;
                    }
                    if (ph == 1)
                    {
                        Philip = Philip + 10;
                    }
                    if (ph == 2)
                    {
                        Philip = Philip + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int ahg = rnd.Next(2);
                    if (ahg == 0)
                    {
                        Arild = Arild + 20;
                    }
                    if (ahg == 1)
                    {
                        Arild = Arild + 10;
                    }
                    if (ahg == 2)
                    {
                        Arild = Arild + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int j = rnd.Next(2);
                    if (j == 0)
                    {
                        Junas = Junas + 20;
                    }
                    if (j == 1)
                    {
                        Junas = Junas + 10;
                    }
                    if (j == 2)
                    {
                        Junas = Junas + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int h = rnd.Next(2);
                    if (h == 0)
                    {
                        Hans = Hans + 20;
                    }
                    if (h == 1)
                    {
                        Hans = Hans + 10;
                    }
                    if (h == 2)
                    {
                        Hans = Hans + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int hu = rnd.Next(2);
                    if (hu == 0)
                    {
                        Hugo = Hugo + 20;
                    }
                    if (hu == 1)
                    {
                        Hugo = Hugo + 10;
                    }
                    if (hu == 2)
                    {
                        Hugo = Hugo + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int l = rnd.Next(2);
                    if (l == 0)
                    {
                        Linus = Linus + 20;
                    }
                    if (l == 1)
                    {
                        Linus = Linus + 10;
                    }
                    if (l == 2)
                    {
                        Linus = Linus + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int s = rnd.Next(2);
                    if (s == 0)
                    {
                        Simon = Simon + 20;
                    }
                    if (s == 1)
                    {
                        Simon = Simon + 10;
                    }
                    if (s == 2)
                    {
                        Simon = Simon + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int jo = rnd.Next(2);
                    if (jo == 0)
                    {
                        Johan = Johan + 20;
                    }
                    if (jo == 1)
                    {
                        Johan = Johan + 10;
                    }
                    if (jo == 2)
                    {
                        Johan = Johan + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int s = rnd.Next(2);
                    if (s == 0)
                    {
                        Sigurd = Sigurd + 20;
                    }
                    if (s == 1)
                    {
                        Sigurd = Sigurd + 10;
                    }
                    if (s == 2)
                    {
                        Sigurd = Sigurd + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int r = rnd.Next(2);
                    if (r == 0)
                    {
                        Robert = Robert + 20;
                    }
                    if (r == 1)
                    {
                        Robert = Robert + 10;
                    }
                    if (r == 2)
                    {
                        Robert = Robert + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int k = rnd.Next(2);
                    if (k == 0)
                    {
                        Karl = Karl + 20;
                    }
                    if (k == 1)
                    {
                        Karl = Karl + 10;
                    }
                    if (k == 2)
                    {
                        Karl = Karl + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int e = rnd.Next(2);
                    if (e == 0)
                    {
                        Erik = Erik + 20;
                    }
                    if (e == 1)
                    {
                        Erik = Erik + 10;
                    }
                    if (e == 2)
                    {
                        Erik = Erik + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int m = rnd.Next(2);
                    if (m == 0)
                    {
                        Martin = Martin + 20;
                    }
                    if (m == 1)
                    {
                        Martin = Martin + 10;
                    }
                    if (m == 2)
                    {
                        Martin = Martin + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int ic = rnd.Next(2);
                    if (ic == 0)
                    {
                        Isac = Isac + 20;
                    }
                    if (ic == 1)
                    {
                        Isac = Isac + 10;
                    }
                    if (ic == 2)
                    {
                        Isac = Isac + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int ik = rnd.Next(2);
                    if (ik == 0)
                    {
                        Isak = Isak + 20;
                    }
                    if (ik == 1)
                    {
                        Isak = Isak + 10;
                    }
                    if (ik == 2)
                    {
                        Isak = Isak + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int pk = rnd.Next(2);
                    if (pk == 0)
                    {
                        Pakorn = Pakorn + 20;
                    }
                    if (pk == 1)
                    {
                        Pakorn = Pakorn + 10;
                    }
                    if (pk == 2)
                    {
                        Pakorn = Pakorn + 0;
                    }
                }
                for (int i = 0; i < 20; i++)
                {
                    int n = rnd.Next(2);
                    if (n == 0)
                    {
                        Nils = Nils + 20;
                    }
                    if (n == 1)
                    {
                        Nils = Nils + 10;
                    }
                    if (n == 2)
                    {
                        Nils = Nils + 0;
                    }
                }
    
                int[] tävlande = new int[20];
                tävlande[0] = Peter;
                tävlande[1] = Daniel;
                tävlande[2] = Kim;
                tävlande[3] = Philip;
                tävlande[4] = Arild;
                tävlande[5] = Junas;
                tävlande[6] = Hans;
                tävlande[7] = Hugo;
                tävlande[8] = Linus;
                tävlande[9] = Simon;
                tävlande[10] = Johan;
                tävlande[11] = Sigurd;
                tävlande[12] = Robert;
                tävlande[13] = Karl;
                tävlande[14] = Erik;
                tävlande[15] = Martin;
                tävlande[16] = Isac;
                tävlande[17] = Isak;
                tävlande[18] = Pakorn;
                tävlande[19] = Nils;
    
    
                Console.WriteLine("Peter slutade på " + Peter + " poäng");
                Console.WriteLine("Daniel slutade på " + Daniel + " poäng");
                Console.WriteLine("Kim slutade på " + Kim + " poäng");
                Console.WriteLine("Philip slutade på " + Philip + " poäng");
                Console.WriteLine("Arild slutade på " + Arild + " poäng");
                Console.WriteLine("Junas slutade på " + Junas + " poäng");
                Console.WriteLine("Hans slutade på " + Hans + " poäng");
                Console.WriteLine("Hugo slutade på " + Hugo + " poäng");
                Console.WriteLine("Linus slutade på " + Linus + " poäng");
                Console.WriteLine("Simon slutade på " + Simon + " poäng");
                Console.WriteLine("Sigurd slutade på " + Sigurd + " poäng");
                Console.WriteLine("Robert slutade på " + Robert + " poäng");
                Console.WriteLine("Karl slutade på " + Karl + " poäng");
                Console.WriteLine("Erik slutade på " + Erik + " poäng");
                Console.WriteLine("Martin slutade på " + Martin + " poäng");
                Console.WriteLine("Isac slutade på " + Isac + " poäng");
                Console.WriteLine("Isak slutade på " + Isak + " poäng");
                Console.WriteLine("Pakorn slutade på " + Pakorn + " poäng");
                Console.WriteLine("Nils slutade på " + Nils + " poäng");
                Array.Sort(tävlande);
                //Array.Reverse(tävlande);//sort array in descending order
                int a = tävlande[19];
                Console.WriteLine("Vinnare är: ... med {0} poäng", a);
                Console.ReadLine();
    

    Sincerely,

    Neil Hu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Monday, October 30, 2017 6:51 AM
    Moderator
  • @Neil -- Yes, you're right about that. If the array had contained a class with an int property it would have behaved differently (see example at the end of this reply).

    However, I wanted to suggest a much better way to initialize this array (I would have written it yesterday, but ran out of time on a busy weekend) ... unless, of course, @Dacke really wants all those variables (Peter, Daniel, Kim, etc.) for other uses. If not, then this is cleaner:

    int[] tävlande = new int[20];
    Random rnd = new Random();
    
    for (int x = 0; x < 20; x++)
    {    
        for (int i = 0; i <20; i++)
        {
            // Note that I changed this to 3, because Random.Next returns less than that value
            // When it was set to 2, a 2 would never be returned.
            int p = rnd.Next(3);
            
            if(p == 0)
                tävlande[x] += 20
            else if(p == 1)
                tävlande[x] += 10
            // not even necessary
            //else if(p == 2)
            //    tävlande[x] += 0
        }
    }
    

    Here's an example, as I mentioned above, about using a Class in an array.

    private class TestIntArray
    {
        public int MyInt { get; set; }
        public TestIntArray(int x)
        {
            MyInt = x;
        }
    }
    
    ........
    
    TestIntArray Peter = new TestIntArray(0);
    TestIntArray Daniel = new TestIntArray(0);
    TestIntArray Kim = new TestIntArray(0);
    
    TestIntArray[] intArray = new TestIntArray[3];
    intArray[0] = Peter;
    intArray[1] = Daniel;
    intArray[2] = Kim;
    
    Peter.MyInt = 5;
    Daniel.MyInt = 6;
    Kim.MyInt = 7;
    
    foreach (var a in intArray)
    {
        Console.WriteLine("The value is: {0}", a.MyInt);
    }
    

    The WriteLine will show the new values of the MyInt property for each TestIntArray class instance contained in the array.


    ~~Bonnie DeWitt [C# MVP]

    http://geek-goddess-bonnie.blogspot.com

    • Proposed as answer by Fei HuModerator Wednesday, November 1, 2017 8:33 AM
    Monday, October 30, 2017 3:52 PM
    Moderator
  • Thanks ,

    awesome suggestion😀


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Wednesday, November 1, 2017 8:33 AM
    Moderator