先上代码:
int[] a = new int[50];
            int[] b = new int[50];
            int n = 0;
            int max = 0;
            Random ra = new Random();
            Console.WriteLine("下面为随机生成的50个数!!");
            for (int i = 0; i < a.Length; i++)
            {
                a[i] = ra.Next(1, 1000);
            }
            foreach (int i in a)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.WriteLine("点击回车,重新按从大到小排列数组!!");
            Console.ReadLine();
            for (int i = 0; i < a.Length; i++)
            {
                for (int k = 0; k < 49; k++)
                {
                    if (max <= a[k])
                    {
                        max = a[k];
                        n = k;
                    }
                }
            b[i] = max;
            a[n] = -n;
            }
            Console.WriteLine("重新按从大到小顺序排列数字:");
            foreach (int i in b)
                Console.Write(i + " ");
            Console.WriteLine();
            foreach (int i in a)
                Console.Write(i + " ");
            Console.ReadLine();我的思路是  
先随机出来50个数字(a[50])
第一轮 把50个数字中的最大数字找出来 =max 同时记住这个数字在数组中的位置n
再把max赋值给b[50] 的第一个  这样b[0]就为最大的数字 同时 把a[n]赋值为-n  这样a[n]就成为了最小的数字了
如此50轮  
b[50]就是a[50]从大到小的排列了

解决方案 »

  1.   

    好烂的代码。叫linq的斑竹咖啡猫给你写个。
      

  2.   

                    int[] a = new int[50];
                    int[] b = new int[50];
                    int n = 0;
                    int max = 0;
                    Random ra = new Random();
                    Console.WriteLine("下面为随机生成的50个数!!");
                    for (int i = 0; i < a.Length; i++)
                    {
                        a[i] = ra.Next(1, 1000);
                    }
                    foreach (int i in a)
                    {
                        Console.Write(i + " ");
                    }
                    Console.WriteLine();
                    Console.WriteLine("点击回车,重新按从大到小排列数组!!");
                    Console.ReadLine();
                    for (int i = 0; i < a.Length; i++)
                    {
                        for (int k = 0; k < a.Length; k++)
                        {
                            if (max <= a[k])
                            {
                                max = a[k];
                                n = k;
                            }
                        }
                        b[i] = max;
                        a[n] = -n;
                        max = 0;
                    }
                    Console.WriteLine("重新按从大到小顺序排列数字:");
                    foreach (int i in b)
                        Console.Write(i + " ");
                    Console.WriteLine();
                    foreach (int i in a)
                        Console.Write(i + " ");
                    Console.ReadLine();
      

  3.   

                    int[] a = new int[50];
                    int[] b = new int[50];
                    int n = 0;
                    int max = 0;
                    Random ra = new Random();
                    Console.WriteLine("下面为随机生成的50个数!!");
                    for (int i = 0; i < a.Length; i++)
                    {
                        a[i] = ra.Next(1, 1000);
                    }
                    foreach (int i in a)
                    {
                        Console.Write(i + " ");
                    }
                    Console.WriteLine();
                    Console.WriteLine("点击回车,重新按从大到小排列数组!!");
                    Console.ReadLine();
                    for (int i = 0; i < a.Length; i++)
                    {
                        for (int k = 0; k < a.Length; k++)
                        {
                            if (max <= a[k])
                            {
                                max = a[k];
                                n = k;
                            }
                        }
                        b[i] = max;
                        a[n] = -n;
                        max = 0;
                    }
                    Console.WriteLine("重新按从大到小顺序排列数字:");
                    foreach (int i in b)
                        Console.Write(i + " ");
                    Console.WriteLine();
                    foreach (int i in a)
                        Console.Write(i + " ");
                    Console.ReadLine();
      

  4.   

    我了个去啊 
       就是没把MAX给赋值为0.。。