fortran 数组赋值求助?

2025-04-06 18:55:37
推荐回答(2个)
回答1:

第一,data是定义语句,而不是执行语句。第二,allocate(a(n,n))没有问题。第三,网上这些问题你很难搜索到,因为不好描述。别人说的很可能与你遇到的不是同一个问题。你需要有针对性的提问。以下是解答。ProgramBaidu_ThlwsImplicitNonereal::b(3,3)=(/(/1,2,1/),(/3,2,3/),(/2,3,4/)/)!//直接定义时,可以使用这样的二维数组形式。Real,allocatable::a(:,:)Allocate(a(3,3))a=reshape((/1,2,3,4,5,6,7,8,9/),(/3,3/))!//可变数组可使用reshape把一维数组形式转变为二维数组形式write(*,*)awrite(*,*)bEndProgramBaidu_Thlwsreshape函数用于把一个数组改变外形,变为另一个数组。例如上例:a=reshape((/1,2,3,4,5,6,7,8,9/),(/3,3/))把(/1,2,3,4,5,6,7,8,9/)这个1*9的一维数组,转换为(/3,3/)的数组,即3*3的数组。

回答2:

character*200::line
character*200::A(10000)
n=10000
do i=1,n
     read(*,'(A)',end=99)line
    A(i)=line
enddo
99 stop
end