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#,刚编个简单的程序就这样了,头好晕哦,里面还有几个问题还没解决,睡能先帮我这个问题先,非常感谢
{
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#,刚编个简单的程序就这样了,头好晕哦,里面还有几个问题还没解决,睡能先帮我这个问题先,非常感谢
要到构造函数里面去初始化。
public void setCount(int NumberCount)
{
num_count = NumberCount;
numberValue = new double[num_count];
}
不过上面的程序我刚才调试了下发现,如果输入的不是数字的话,里面的m_count 也会+1
例如你输入4个数字1 2 3 4,其他6次输入的不是数字
输出的是0 0 0 0 0 0 1 2 3 4。怎么解决这个问题让它能顺利输入10个数字,然后正确的输出10个排序的数字呢?
还有不管我输入什么数字,输出的总是整数。如输入4.5,输出4
这是怎么回事?(是不是问题太多了?)
帮忙帮到底哈:)
- -!!
我数组也定义成double型了,怎么输出还是整数,而不是我想要的输入什么数字就输出什么数字呢???我很疑惑~
(我是一只小菜鸟!)