WEB开发网
开发学院软件开发C语言 由C#数组类型引起的程序BUG说起 阅读

由C#数组类型引起的程序BUG说起

 2009-03-03 08:17:54 来源:WEB开发网   
核心提示:给学生布置了这样一道题目:用面向对象的思想实现冒泡排序算法,要求程序架构代码风格良好,由C#数组类型引起的程序BUG说起,且用Asp.Net实现冒泡的形象显示,决定自己也写下程序,新建类:MySort.cs代码如下:using System;using System.Collections.Generic;using

给学生布置了这样一道题目:用面向对象的思想实现冒泡排序算法,要求程序架构代码风格良好,且用Asp.Net实现冒泡的形象显示。决定自己也写下程序,新建类:MySort.cs代码如下:

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

namespace ArraySort
{
    public class SortBy
    {
        //冒泡完成后每次排序趟执行的情况
        private ArrayList _EachBubblingDetail = new ArrayList();


        /**//// <summary>
        /// 冒泡完成后每次排序趟执行的情况
        /// </summary>
        public ArrayList EachBubblingDetail
        {
            get
            {
                return _EachBubblingDetail;
            }
         }

        /**//// <summary>
        /// 传入数组实现冒泡排序并把冒泡排序的每趟细节记录
        /// </summary>
        /// <param name="num">要排序的原数组</param>
        public void Bubbling(int[] num)
        {
            EachBubblingDetail.Add(num);

            //冒泡算法
            for (int i = 0; i < num.Length - 1; i++)
            {
                for (int j = 0; j < num.Length - 1 - i; j++)
                {
                    if (num[j] < num[j + 1])
                    {
                        int temp = num[j];
                        num[j] = num[j + 1];
                        num[j + 1] = temp;
                     
                    }

                    //添加每趟排序后的当前数组
                    EachBubblingDetail.Add(num);
                }

                //添加完成后的数组
                EachBubblingDetail.Add(num);
            }
        }
    }
}

新建一个WEB工程调用这个类,

 protected void btnSort_Click(object sender, EventArgs e)
        {
           
           
            SortBy obj = new SortBy();
            obj.Bubbling(new int[] { 12, 3232, 23, 12, 34, 4555 });

            for (int i = 0; i < obj.EachBubblingDetail.Count; i++)
            {
                divSortResult.InnerHtml += "第" + i + " 趟冒后:";
                int[] tem = obj.EachBubblingDetail[i] as int[];
                for (int j = 0; j < tem.Length; j++)
                {
                    divSortResult.InnerHtml += "        " + tem[j].ToString();
                }

                divSortResult.InnerHtml += "<br>";
            }
        }

猜想下程序结果是什么样 ?

由C#数组类型引起的程序BUG说起

为什么?这个结果不是我们所要的,就是说程序没有按照我们的意愿执行由C#数组类型引起的程序BUG说起,亲爱的朋友,你知道BUG在哪里吗?这个就是我们下篇讨论C#数据类型

Tags:数组 类型 引起

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接