C#在一个textbox中输入任意数字后,在另外一个textbox中从小到大排序,请大神帮我看一下代码哪里错了吗

string[] strArray = textBox1.Text.Split(' ');//以空格键为分隔符将字符串数组放入strAtrray数组中
int[] intArray = new int[strArray.Length];
for (int i = 0; i < intArray.Length; i++)
{
intArray[i] = int.Parse(strArray[i]);//将字符串数组转换成int型数组
for (int x = 0; x < intArray.Length - 1; x++)
{
int min = 0;
for (int j = x + 1; j < intArray.Length; j++)
{
if (intArray[j] < intArray[x])
min = intArray[j];
}
int t = min;
min = intArray[x];
intArray[x] = t;
}
textBox4.Text =textBox4.Text+ intArray[i].ToString();
}
我的思路是:先将输入的字符串转换成int型数组,然后排序后显示出来,请帮我看一下哪里出错了,明天就交了,急啊,麻烦了

看看输入的值最后一个是否有空格 .Split(' ') 注意最后一个空格。。。用trimend('')把最后一个空格去掉 int.Parse('这里是空格') 应该会报错。。。 推荐使用tryParse转换类型。。。。追问

类型转换应该没问题,转换后可以求出输入所有数字的最大值。就是排序这里乱输出一些。。

追答

额。。。冒泡不是这样搞的。。。排序都还没完成  那就想输出了。。。。不太能理解你的思路。。

            textBox4.Text = "";
            //以空格键为分隔符将字符串数组放入strAtrray数组中
            //忽略最后一个字符
            string[] strArray = textBox1.Text.TrimEnd(' ').Split(' ');
            int[] intArray = new int[strArray.Length];
            int temp = 0;
            for (int i = 0; i < intArray.Length; i++)
            {
                intArray[i] = int.Parse(strArray[i]);//将字符串数组转换成int
            }
            for (int x = 0; x < intArray.Length - 1; x++)
            {
                for (int j = x + 1; j < intArray.Length; j++)
                {
                    if (intArray[j] < intArray[x])
                    {
                        temp = intArray[x];
                        intArray[x] = intArray[j];
                        intArray[j] = temp;
                    }
                }
            }
            for (int i = 0; i < intArray.Length; i++)
            {
                textBox4.Text = textBox4.Text + intArray[i].ToString() + " ";
            }

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答