厦门哪里拍孕妇照:delphi知道两个数组A,B,求第三个数组C!

来源:百度文库 编辑:高考问答 时间:2024/05/05 19:05:06
delphi知道两个数组A,B,求第三个数组C!
a:array[0..16] of integer=(0,2,2,1,3,2,3,4,6,5,5,4,3,3,2,2,2);
b:array[0..16] of integer=(0,3,3,3,9,9,16,16,25,25,33,40,40,45,45,49,49);
c:array[0..16] of integer;
结果:
c的内容为:(0,5,5,5,5,5,7,7,11,11,5,7,7,5,5,4,4)
来历:
b中找相同值的序号,对应A中的序号并相加,和赋值给这些序号的C中.
表达得不是很清楚,举个例子:
因为B[1]、B[2]、B[3]值都为3,所以C[1]、C[2]、C[3]分别等于5(A[1]+A[2]+A[3])
先多谢st2ne朋友,但TA的方法结果:C=(0,9,11,11,8,8,10,10,17,17,5,11,11,8,8,6,6)
如果没有C=A,则为C=(0,7,9,9,5,5,7,7,11,11,0,7,7,5,5,4,4)

我用控制台程序做了一下
代码如下:
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;
var
a:array[0..16] of integer=(0,2,2,1,3,2,3,4,6,5,5,4,3,3,2,2,2);
b:array[0..16] of integer=(0,3,3,3,9,9,16,16,25,25,33,40,40,45,45,49,49);
c:array[0..16] of integer;
i ,j :integer;
begin
for i := 0 to 16 do
begin
c[i] := 0;
for j := 0 to 16 do
begin
if b[i] = b[j] then
c[i] := c[i] + a[j];
end;
end;
for i := 0 to 16 do
begin
write(c[i]);
write(#32);
end;
readln;
end.

我电脑没装DELPHI,很久没用DELPHI了,语法有一点混了,用伪代码写一下,语法你自己改了吧.

c := a; //就是先让数组C跟数组A完全相同

for i := 0 to 16 do
begin
for j := 0 to 16 do
begin
if (b[i] = b[j]) and (i <> j) then
begin
c[i] = c[i] + a[j];
c[j] = c[i];
end;
end;
end;

类似这样写就可以了.主要我现在没有办法调试.

1