求几个简单fortran 语言的问题

1、FORMAT(3x,F6.2)前面意思为空3格(输入的前三个数不计),再取6个数,最后两个为小数?F是专门定义数字的?要是字母就是A?2、WRITE(*,'(1X,3... 1、FORMAT(3x,F6.2) 前面意思为空3格(输入的前三个数不计),再取6个数,最后两个为小数? F是专门定义数字的?要是字母就是A?

2、WRITE(*,'(1X,3A)')STR1,STR2,STR3 怎么理解?我看题答案也没提行啊

3、为什么看题时有时候WRITE命令括号里1x表示空格,有时候表示提行?

4、E的问题,如按 FORMAT(1X,E8.2)输出,3.00E+00 30E+01 两个为什么前者错,小数部分不是2吗?两个的值是多少啊,3和30?

5、DIMENSION A(2,3)
READ(*,*)A
CALL SS1(A)
END
SUBROUTINE SS1(B)
DIMENSION B(3,2)
WRITE(*,*) B(3,1)
END
我想问A和B是怎么对应的? 是A(a,b)=B(b,a)吗?
另外,要是这题作点改动,A(3,3) 然后定义一个一维的X(3),那X中的三个数和A里怎么对应,是X(1)=A(1,1)
X(2)=A(2,2) X(3)=A(3,3)吗?
展开
 我来答
BiCGSTAB
2010-09-04 · TA获得超过878个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:0
展开全部
1 您说的基本正确。不过不一定是6个数,小数点等符号也包含在内。

2 您的病句太多了,恕我不知您要问什么。3A就是说一行输出三个变量,所以STR1,STR2,STR3都在一行输出。

3 病句。。。恕我不知您要问什么。

4 3.00E+00 30E+01 都不对。如果数值是3,应输出0.30E+01,如果是30,应输出0.30E+02,不信你可以编程试一试。小数部分当然是两位,所以是0.30。

5 不是A(a,b)=B(b,a)。
A(2,3)在内存里的存储顺序是按列存储,即A11->A21->A12->A22->A13->A23。
在subroutine里建立B(3,2)时,也是按列读取,即B11->B21->B31->B12->B22->B32。
而主程序传给subroutine的不是数组本身,而是指针,即数组的首地址。所以A11和B11地址一样。
因此数组A和B的对应关系为:
A11 A21 A12 A22 A13 A23
B11 B21 B31 B12 B22 B32
如果按照你说的改动,那么形参X应该对应A数组的前3个元素(注意按列存储的顺序),即
A11 A21 A12
X1 X2 X3

以上回答都可以通过编程验证,建议你自己动动手。 有问题再交流
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式