请教:两个动态数组array1和array2,长度可能不等,数据可能有相同的部分,比如说:
{'001','002','003'},{'002','003','005','007'}
想做比较,得出两者不同的部分
如上例中,就怎么得出array1的'001'和array2的'005','007'
小弟我Pascal语法比较弱,想请教一二
不知道200分够不够啊!?

解决方案 »

  1.   

    array1_1,array2_1:array of string;
    i,j:integer;
    Setlength(array1_1,length(array1));
    SetLength(array2_1,length(array2));
    for i:=0 to length(array1)-1 do
    begin
      for j:=0 to length(array2)-1 do
       begin
        if array1[i]:=array2[j] then
          array1_1[i]:=array1[i]
          else
          array1_1[i]:='';
       end;
    end;
    for i:=0 to length(array2)-1 do
    begin
      for j:=0 to length(array1)-1 do
       begin
        if array2[i]:=array1[j] then
          array2_1[i]:=array2[i]
          else
          array2_1[i]:='';
       end;
    end;
    这时,array1_1,array2_1中所有非空的字符串就是结果。
      

  2.   

    ‘让一起随风’的话中有不少的错误啊!    if array2[i]:=array1[j] then  ——————if : ,cool这时,array1_1,array2_1中所有非空的字符串就是结果。————所有非空的字符串是相同的部分,不是不同的部分
      

  3.   

    var
    array1,array2,array1_1,array2_1, a3:array of string;
    i,j:integer;begin
    Setlength(array1,4);
    SetLength(array2,4);
    Setlength(array1_1,length(array1));
    SetLength(array2_1,length(array2));
    SetLength(a3,length(array2));array1[0] := '01';
    array1[1] := '02';
    array1[2] := '03';
    array1[3] := '04';array2[0] := '02';
    array2[1] := '04';
    array2[2] := '05';
    array2[3] := '07';for i:=0 to length(array1)-1 do
    begin
      for j:=0 to length(array2)-1 do
      begin
        if array1[i] = array2[j] then
        begin
          a3[i]:=array1[i];
          array1_1[i]:='';
          break;
        end
        else
        begin
          array1_1[i]:=array1[i];
        end;
      end;
    end;
    for i:=0 to length(array2)-1 do
    begin
      for j:=0 to length(array1)-1 do
      begin
        if array2[i] = array1[j] then
        begin
          array2_1[i]:='';
          break;
        end
        else
        begin
          array2_1[i]:=array2[i];
        end;  end;
    //
    end;