有风叶自鸣 2019-05-09 21:21 采纳率: 100%
浏览 403
已采纳

C#随机数数组排序问题,代码错在哪里?

问题:
C#。由用户确定数组长度后,随机生成一个(随机数范围0~20)数组,并对数组里面的数进行排序(由小到大)。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入数组长度!");
            int n = int.Parse(Console.ReadLine());
            Console.WriteLine("------------------");
            int[] a = new int[n];
            var s = new Random();
            for (int i = 0;i < n;i++)
            {
                a[i] = s.Next(0,21);                   //给数组的每个元素赋值一个随机数(范围是0~20)
                Console.WriteLine(a[i]);
            }
            Console.WriteLine("排序后的数组如下");
            int temp = 0;
            for (int i = 0; i < a.Length; i++)
                for (int j = 0; j < a.Length-i-1; j++)
                {
                    if (a[j] > a[j + 1])
                    {
                        temp = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = temp;
                    }
                    Console.WriteLine(a[j]);
                }
            Console.Read();
        }
    }
}

图片说明![daimahttps://img-ask.csdn.net/upload/201905/09/1557407909_302597.png)

运行代码后就发现数组没有被排序,也看过java的相似排序,但就是不知道自己错哪了。求大佬帮帮忙,谢谢!!

  • 写回答

1条回答

  • threenewbee 2019-05-09 23:56
    关注

    排序没有问题,但是Console.WriteLine(a[j]);这个不对
    要在排序完成之后再循环输出,你输出的是中间结果

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀