using System;interface ISort1
{
double[] getnumber();
}interface ISort2
{
double[] numSort();
}interface ISort3
{
void outplay();
}class Sort : ISort1, ISort2, ISort3
{
private static int num_count = 0;
double[] numberValue = new double[num_count]; public void setCount(int NumberCount)
{
num_count = NumberCount;
} private bool isNumber(string str)
{
for (int i = 0; i < str.Length; i++)
{
if (!char.IsNumber(str,i) && str.Substring(i,1) != ".")
{
return false;
}
} return true;
} public double[] getnumber()
{
string strline; for(int num = 0;num < num_count;num++)
{
Console.Write("Enter the Number: ");
strline = Console.ReadLine(); if (isNumber(strline))
{
numberValue[num] = double.Parse(strline);
}                        
else
{
Console.WriteLine("error");
}
} return numberValue;
} public double[] numSort()
{
double temp;
for(int j = 0; j < numberValue.Length; j++)
for(int k = j+1; k< numberValue.Length; k++)
if(numberValue[j] < numberValue[k])
{
temp = numberValue[j];
numberValue[j] = numberValue[k];
numberValue[k] = temp;
}
return numberValue;
} public void outplay()
{
foreach(int i in numberValue)
Console.Write(" " + i + " ");
}  public static void Main()
{
Sort sort = new Sort();
sort.setCount(10);
sort.getnumber();
sort.numSort();
sort.outplay();
}
}在运行的时候输入一个数字说超出数组索引界限。出错的地方是getnumber方法里的numberValue[num] = double.Parse(strline);和最后的sort.getnumber();
哪位大哥能帮忙解决。刚学C#,刚编个简单的程序就这样了,头好晕哦,里面还有几个问题还没解决,睡能先帮我这个问题先,非常感谢

解决方案 »

  1.   

    double[] numberValue = new double[num_count];
    要到构造函数里面去初始化。
      

  2.   

    看错了,改成
    public void setCount(int NumberCount)
    {
    num_count = NumberCount;
                       numberValue = new double[num_count];
    }
      

  3.   

    谢谢上面的大哥,这个问题解决。
    不过上面的程序我刚才调试了下发现,如果输入的不是数字的话,里面的m_count 也会+1
    例如你输入4个数字1 2 3 4,其他6次输入的不是数字
    输出的是0 0 0 0 0 0 1 2 3 4。怎么解决这个问题让它能顺利输入10个数字,然后正确的输出10个排序的数字呢?
    还有不管我输入什么数字,输出的总是整数。如输入4.5,输出4
    这是怎么回事?(是不是问题太多了?)
    帮忙帮到底哈:)
    - -!!
      

  4.   

    m_count也会+1的情况已经解决了,谁能帮我解决第二个??
    我数组也定义成double型了,怎么输出还是整数,而不是我想要的输入什么数字就输出什么数字呢???我很疑惑~
    (我是一只小菜鸟!)