我有一个实数* 8 数字矩阵作为压缩下三角矩阵保存在数组中:
|1 * * * * *|
|2 7 * * * *|
|3 8 12 * * *|
|4 9 13 16 * *| => [1,2,3,4,5,6,7,8,9...21]
|5 10 14 17 19 *|
|6 11 15 18 20 21|
我希望能够以以下格式打印它:
[row|col] 1 2 3 4 5
1 1 * * * *
2 2 7 * * *
3 3 8 12 * *
4 4 9 13 16 *
5 5 10 14 17 19
6 6 11 15 18 20
[row|col] 6
1 *
2 *
3 *
4 *
5 *
6 6
我遇到的问题是我不知道如何循环进入矩阵元素而无需创建额外的数组来按列保存元素然后打印它们。这是我迄今为止尝试过的
Implicit Real*8 (A-H,O-Z)
INTEGER ARRAY(21)
10 Format(5X,'[Row|Col]',5(8X,I6))
Icol=6
Num1=1
C Test array
DO K=1,21
Array(K)=K*1.0d0
ENDO
C Print the elements row-by-row.
44 Num2=Icol-Num1
Num=Num2
If ((Num2).gt.5) Num=5
Write(*,10) (I,I=Num1,Num1+Num)
INum1=INum1+Num
if (Inum1.ne.Icol) goto 44
STOP
END