题目
fortran 定义矩阵元素位置问题
不会处理矩阵元素的位置:
write 的格式是write(*,*)
但是具体规定的时候就不会了,如:
write(*,"(I3,I3/,I3,I3)")((m(r,c),c = 1,2),r = 1,2)是下面小程序的
(I3,I3/,I3,
program main
implicit none
integer,parameter ::row = 2
integer,parameter ::col = 2
integer ::m(row,col)
integer r 用来赋值row
integer 用来赋值column
data((m(r,c),r = 1,2),c=1,2)/1,2,3,4/
write(*,"(I3,I3/,I3,I3)")((m(r,c),c = 1,2),r = 1,2) 重点是这一行
end
这样输出的结果是:
1 3
2 4
如果那行换成write(*,*) ((m(r,c),c = 1,2),r = 1,2)
则输出的结果是
1 3 2 4
如果那行换成write(*,*) m
则输出的结果是
1 2 3 4
为什么会有这样的区别,原本设的是二维数组,怎么最后输出来就变成一维的了
不会处理矩阵元素的位置:
write 的格式是write(*,*)
但是具体规定的时候就不会了,如:
write(*,"(I3,I3/,I3,I3)")((m(r,c),c = 1,2),r = 1,2)是下面小程序的
(I3,I3/,I3,
program main
implicit none
integer,parameter ::row = 2
integer,parameter ::col = 2
integer ::m(row,col)
integer r 用来赋值row
integer 用来赋值column
data((m(r,c),r = 1,2),c=1,2)/1,2,3,4/
write(*,"(I3,I3/,I3,I3)")((m(r,c),c = 1,2),r = 1,2) 重点是这一行
end
这样输出的结果是:
1 3
2 4
如果那行换成write(*,*) ((m(r,c),c = 1,2),r = 1,2)
则输出的结果是
1 3 2 4
如果那行换成write(*,*) m
则输出的结果是
1 2 3 4
为什么会有这样的区别,原本设的是二维数组,怎么最后输出来就变成一维的了
提问时间:2021-01-14
答案
(I3,I3/,I3,I3)
意思是,输出两个 I(整数)3(长度),然后换行(/),然后再输出两个整数,长度3
这是格式化输出.与数组没有什么关系.
因为有一个 / ,所以换行以后就是2行.
Fortran 的存储是列优先的.所以
write(*,*) m 结果是 1 2 3 4
他相当于 write(*,*) ((m(r,c),r = 1,2),c = 1,2) {Fortran 是列优先的,所以默认是先循环列,再循环行}
而 write(*,*) ((m(r,c),c = 1,2),r = 1,2) 先循环行,再循环列,则结果是 1 3 2 4
注意 r 和 c 的顺序.
最后一个很严重的错误!
二维数组,一维数组,是内存里的格式.它与输出一行,两行没有关系.
一维数组可以输出成一行,也可以输出成两行.
二维数组也可以输出成一行,也可以输出成两行.
他们也可以输出成三行,四行.只要你喜欢,可以按照任何方式输出.这不影响他在程序里是几维数组.
意思是,输出两个 I(整数)3(长度),然后换行(/),然后再输出两个整数,长度3
这是格式化输出.与数组没有什么关系.
因为有一个 / ,所以换行以后就是2行.
Fortran 的存储是列优先的.所以
write(*,*) m 结果是 1 2 3 4
他相当于 write(*,*) ((m(r,c),r = 1,2),c = 1,2) {Fortran 是列优先的,所以默认是先循环列,再循环行}
而 write(*,*) ((m(r,c),c = 1,2),r = 1,2) 先循环行,再循环列,则结果是 1 3 2 4
注意 r 和 c 的顺序.
最后一个很严重的错误!
二维数组,一维数组,是内存里的格式.它与输出一行,两行没有关系.
一维数组可以输出成一行,也可以输出成两行.
二维数组也可以输出成一行,也可以输出成两行.
他们也可以输出成三行,四行.只要你喜欢,可以按照任何方式输出.这不影响他在程序里是几维数组.
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
1,人们染上烟瘾,最终因吸烟使自己丧命.
最新试题
- 1用秦九韶算法求多项式f(x)=8x7+5x6+3x4+2x+1,当x=2时的值.
- 2英语翻译
- 3集合u={1.2.3---2000}集合A为集合u的子集,当x属于A时,16x不属于A,求集合A中元素个数的最大值?
- 4关于非谓语动词中的with结构的一个疑问
- 5point和toilet里的oi发音相同吗?
- 6简便计算:0.21*4.2/0.21*4.2
- 7嗯..就这个~
- 8求十个拟人句和比喻句,有短越好
- 9The war was started to _____ the rights of the people.
- 10二次函数y=-x2+bx+c,抛物线与x交于(1,0)点与y交于(0,3)点写出当Y小于0时,x的取值范围
热门考点
- 124个铁圆锥,可以熔铸成等底等高的圆柱体的个数是( ) A.12个 B.8个 C.36个 D.72个
- 2英语翻译
- 3they are student in No.2 Middle School 翻译
- 4老马识途的一些词语解释
- 5a不等于0的整数,关于x的方程ax=2a^3-3a^2+5a+4有整数根,a取值可以有 急
- 6he lives in shanghai 变反义疑问句
- 7park the to boy a weekend went last(连词成句)
- 8为什么全球升温,雪线会上升?
- 9侧面烘托口技艺人表演技艺高超的句子有
- 10装配尺寸链如何构成?装配尺寸链封闭环是如何确定的?它与工艺尺寸链的封闭环有何区