数组中特定数组段长度的实现

来源:百度知道 编辑:UC知道 时间:2024/06/22 01:45:55
对一个已初始化过的数组,比如说Array[100],
Array[0]=-1,Array[1]=1,Array[2]=3,Array[3]=-2,...
其中Array[1]>0,Array[2]>0,返回一个长度2;
数组Array中存在这样的为正的数组段,那么我要编写一个函数或程序段,返回Array中连续为正的数组段中长度最大的值。

C#实现最好,Basic也不错。
回家了用VC#实现了,贴上面供大家参考
static void Main(string[] args)
{
Random ran = new Random();
const int N = 10;
double[]Array=new double[N];
...//初始化
int[] newLength = new int[N];
int k = 0;
for (int i = 0; i < N; i++)
{
if (Array[i] > 0)
newLength[k]++;
else
k++;
}

你设2个计数器,循环比较每个数组成员,如果为正,进入子循环:检测下一个数组成员值,直到非正,记下该序号,子循环结束,计数器加1,直到读完所有数组成员。读出计数器值就是整数个数。注意:外层循环的次数并不固定,而是取决于每次正段最后一个数组成员所在位置。另外,计数器的清零位置也很重要。
你要是没基础的话,可能看不懂。具体实现就不写了。明白的话十分简单。