2012-09-28 48 views
0

我有一个数据集,它看起来像这样。Fortran 90阵列 - 钻石形状

1 2 3 4 5 
2 3 4 5 6 
3 4 5 6 7 
4 5 6 7 8 
5 6 7 8 9 

这是所需的输出:(没有用X值记录)。

X X 3 X X 
X 3 4 5 X 
3 4 5 6 7 
X 5 6 7 X 
X X 7 X X 

当写道,我应该得到 “3, 3, 4, 5, 3, 4, 5, 6, 7, 5, 6, 7, 7” 作为输出。

到目前为止,我已经尝试了很多想法,在这一刻,似乎没有任何工作。我的do循环最终会创建大量的输出和/或读取错误的值。我甚至尝试过使用不同的存储模式,但似乎没有什么适用。

+3

您应该可能显示您的代码。 – tomfanning

+0

这是一个家庭作业吗?编写解决此问题的程序并不难,但您应该了解如何理解代码中的错误。 –

回答

0

如果你有先见之明,声明你的阵列这样

integer, dimension(-2:2,-2:2) :: my-array 

即,具有指数(0,0)的中心元素,然后我觉得这个嵌套循环将输出的顺序元素,你要求:

do row = -2,2 
    do col = -2+abs(row), 2-abs(row) 
     write(*,*) my_array(row, col) 
    end do 
end do 

如果你没有足够的先见之明,声明你的阵列方式,算术是(高于但不差)多一点繁琐,所以我要把它留给你。而对于产品代码,您需要用参数或致电uboundlbound替换所有2