问题:
有一排物体,从左到右依次编号为1,2,3,...,n.物体属性一样,定义L(i)为第i个与第i+1个之间间隙,
现在从中随机抽出几个,抽出的物体标号由数组a(i)是否为1来判断,a(i)=1时抽出,求抽出之后物体之间间隙组成一个新的数组b() .
思路:
1 初始化L数组,元素个数为n
2 产生随机数组a,元素个数为n
for(j =0;j<n;j++)
a[j] = rand()%2;
3 取得a数组中元素值为0的元素个数k
4 动态生成一个数组b,元素个数为k-1
b = malloc(k-1);
5 计算新的间隙
for(j = 0,i = 1;(j<k-1)&&(i<n-1);j++)
{
b[j] = L[i];
if(!a[i])
continue;
while(a[i])
{
b[j]+ = L[i];
i++;
}

请大家帮忙改一下程序,改成vb,c语言我看不懂

解决方案 »

  1.   

    俺也刚刚自学c语言,一时间也有好多东西不懂
    帮你up一下
      

  2.   

    1 初始化L数组,元素个数为n
    2 产生随机数组a,元素个数为n
       Dim j As Integer
    for j =0 To n  a[j] = rnd(10) mod 2         Next3 取得a数组中元素值为0的元素个数k
    4 动态生成一个数组b,元素个数为k-1
    Dim b() as Integer   'b(0 To k-2) 除非你的k是个已知数才可以这么写
    5 计算新的间隙
             while (j<k-1 and i<n-1)
             j=0
             i=0
             b(j)=L(j)
             if not a(i)
                goto e
             while a(i)
                b(j)=L(i)+b(j)
                i=i+1
              wend
     e:
             j=j+1
             wend请大家帮忙改一下程序,改成vb,c语言我看不懂