标题:数组越界问题
只看楼主
l2480035288
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2013-3-15
结帖率:73.33%
已结贴  问题点数:5 回复次数:3 
数组越界问题
排序问题,最后显示引索数组越界,怎么解决
为什么会有这个问题

{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        float[] a = new float[5];
        float temp;
        int i = 0;
        int j = 0;
        private void bu1_Click(object sender, EventArgs e)
        {
            a[i] = Convert.ToSingle(text1.Text);
            lal.Text += a[i] + " ";
            i++;
        }
        
        private void bu2_Click(object sender, EventArgs e)
        {
            for (i = 1; i <=4; i++)
            { for(j=i+1;j<=4;j++)
                if(a[i]>a[j])
                {
                    temp=a[j];
                    a[j]=a[i];
                    a[j]=temp;
            }
            lal2.Text = "\n 排序之后:";
            for(i=0;i<=4;i++)
            {
                lal2.Text +=a[i];
            }
        }
    }
}
搜索更多相关主题的帖子: private public 
2014-11-11 19:53
yinniannian
Rank: 9Rank: 9Rank: 9
来 自:河北省石家庄
等 级:蜘蛛侠
威 望:2
帖 子:256
专家分:1007
注 册:2011-5-13
得分:0 
你输入5个数字的时候是没有问题的。超过时就会报错,应为你的数组的长度就是5。

代做小型软件。
QQ:449795473
2014-11-13 11:47
编号1016
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:46
专家分:188
注 册:2014-5-8
得分:0 
把最后面的<=4改成<4,试试看可不可以!

相互学习,让自己变得更强大!
2014-11-13 17:28
xf772380342
Rank: 1
等 级:新手上路
威 望:1
帖 子:7
专家分:5
注 册:2014-9-17
得分:5 
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        float[] a = new float[5];
        float temp;
        int i = 0;
        int j = 0;
        private void bu1_Click(object sender, EventArgs e)
        {
            a[i] = Convert.ToSingle(text1.Text);
            lal.Text += a[i] + " ";
            i++;
        }
        
        private void bu2_Click(object sender, EventArgs e)
        {
            for (i = 1; i <=4; i++)
            {for(j=i+1;j<=4;j++)
                if(a[i]>a[j])
                {
                    temp=a[j];
                    a[j]=a[i];
                    a[j]=temp;
            }
            lal2.Text = "\n 排序之后:";
            for(i=0;i<=4;i++)
            {
                lal2.Text +=a[i];
            }
        }
    }
}
红色标记的地方明显会超过数组容量,应该是<4

[ 本帖最后由 xf772380342 于 2014-11-18 11:29 编辑 ]
2014-11-18 11:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-438438-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.599837 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved