Fortran Coder

查看: 12592|回复: 5
打印 上一主题 下一主题

[输入输出] 一个小问题

[复制链接]

35

帖子

11

主题

0

精华

熟手

F 币
129 元
贡献
118 点
跳转到指定楼层
楼主
发表于 2017-1-13 11:02:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
怎么让输出是2*2的,而不是一行?在哪里设置代码左侧显示行数?用的是VS2012环境
[Fortran] 纯文本查看 复制代码
program test1
implicit none
integer,dimension(:,:),allocatable::a
allocate(a(2,2))
a(1,1)=3
a(1,2)=3
a(2,1)=3
a(2,2)=3
write(*,*)a
read(*,*)
end program test1
经常麻烦你们,多谢
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2017-1-13 11:18:55 | 只看该作者
[Fortran] 纯文本查看 复制代码
program test1
implicit none
integer ,allocatable:: a(:,:)
allocate(a(2,2))
a=3
write(*,'(*(2(g0,1x),/))') a
read(*,*)
end program test1

35

帖子

11

主题

0

精华

熟手

F 币
129 元
贡献
118 点
板凳
 楼主| 发表于 2017-1-14 17:24:41 | 只看该作者
大师兄,我又来了
[Fortran] 纯文本查看 复制代码
program test3
implicit none
dimension a(3,3)
integer a
!a=(/(/5,7,6/),(/5,3,7/),(/6,2,0/)/)
a=(/5,7,6,5,3,7,6,2,0/)
write(*,*)a
read(*,*)
end program test3

怎么老是提醒我错误呢,按照彭国伦先生的书来的啊
错误提示:错误        1         error #6366: The shapes of the array expressions do not conform.   [A]        E:\\test\test\test.f90        

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

地板
发表于 2017-1-14 21:49:50 | 只看该作者
等号的左边 (a)是二维数组,等号右边是一维数组。
这是不允许的。

彭国伦用的 CVF(它的检查不够严格,所以允许)
但实际上,语法是不允许的。所以需要 reshape,把等号右边变成二维数组。
[Fortran] 纯文本查看 复制代码
program test3
implicit none
integer :: a(3,3) = reshape([5,7,6,5,3,7,6,2,0],[3,3])
write(*,*)a
read(*,*)
end program test3

35

帖子

11

主题

0

精华

熟手

F 币
129 元
贡献
118 点
5#
 楼主| 发表于 2017-1-15 21:01:20 | 只看该作者
fcode 发表于 2017-1-14 21:49
等号的左边 (a)是二维数组,等号右边是一维数组。
这是不允许的。

额,请指正:
[Fortran] 纯文本查看 复制代码
subroutine opq(a,c)
implicit none
real::a(2,1)
c=a(1,1)+a(2,1)
end subroutine opq


program test6
implicit none
real::mat(2,1)
real::ss
mat(1,1)=3
mat(2,1)=4
call subroutine opq(mat,ss)
write(*,*)ss
read(*,*)
end program test6

希望大师兄不要觉得烦哦,多谢多谢

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

6#
发表于 2017-1-16 19:17:46 | 只看该作者
[Fortran] 纯文本查看 复制代码
subroutine opq(a,c)
implicit none
real::a(2,1),c !//c要定义
c=a(1,1)+a(2,1)
end subroutine opq


program test6
implicit none
real::mat(2,1)
real::ss
mat(1,1)=3
mat(2,1)=4
call opq(mat,ss) !//不需要 subroutine
write(*,*)ss
read(*,*)
end program test6
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-22 19:49

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表