static int Data[] = {-1,-2,1,2,3,4};
static Total=0;
Doit(int * Data,int len)
{
if(len>0)
{
Total+=*Data;
printf("%d\n",Total);
Doit(Data+1,len-1);Total-=(*Data)*2;
printf("%d\n",Total);
Doit(Data+1,len-1);Total+=*Data;
Doit(Data+1,len-1);
}
   
}

解决方案 »

  1.   

    var 
      Data: array[0..5] of Integer = (-1,-2,1,2,3, 4); // 名字还是不要取一样的
      Total:Integer = 0;procedure Doit(Data: PInteger; len: Integer);
    var
      pData: PInteger;
    begin
      pData := nil;
      if (len > 0)
      begin
        Inc(Total, Data^);
        WriteLn(Total);
        pData := Data;
        Inc(pData);
        Doit(pData, len - 1);    Dec(Total, Data^ * 2);
        WriteLn(Total);
        pData := Data;
        Inc(pData);
        Doit(pData, len - 1);    Inc(Total, Data^);
        pData := Data;
        Inc(pData);
        Doit(pData, len - 1);
      end;
    end;
      

  2.   

    beyondtkl(大龙驹<*BEYOND U*>) 
       你有没有编译调译过啦?