FORTRAN数组问题,求高手! 50

在不另辟数组的前提下(这是重点!!!),将一个数组内的指定位置上的两段数进行对调。比如:原数组元素为1,2,3,4,5,6,7,8,9,指定2,3与5,6,7,8对调调换... 在不另辟数组的前提下(这是重点!!!),将一个数组内的指定位置上的两段数进行对调。
比如:原数组元素为1,2,3,4,5,6,7,8,9,指定2,3与5,6,7,8对调

调换后变为1,5,6,7,8,4,2,3,9
求fortran代码或者思路,急~~~~~~~~
展开
 我来答
匿名用户
2015-10-05
展开全部
思路:

1、先将2、3、4缓存到变量x、y、z中;
2、循环4次,将5、6、7、8向左平移三位,即a[i]=a[i+3];
也就是:a[2]=a[5];a[3]=a[6];a[4]=a[7];a[5]=a[8];
3、a[6]:=z;a[7]=x;z[8]=y
----这只是对你的这种特例的办法,没有一点通用性。

要解决这样的问题,就是要使用缓存的中间数组 !!!以下用pascal实现:
const
a:array[1..10] of integer=(11,12,13,14,15,16,17,18,19,20);
b:array[1..10] of integer=(1,5,6,7,8,4,2,3,9,10);
var
i:integer;
c:array[1..10] of integer;
begin
for i:=1 to 10 do c[i]:=a[b[i]];
for i:=1 to 10 do writeln(c[i]);
end.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式