나는 성격과 실수가 모두 포함 된 매트릭스를하고 난이 행렬을 읽고 (자체 크기를 찾습니다) 프로그램을 원한다. 내 행렬의 크기에 대한 내가 가진이 코드 (3,2)와매트릭스의 치수를 찾는 방법은 무엇입니까?
a b 13 15.5 13.2
c d 16 16.75 19
e f 19.2 12.2 18.2
:
! A fortran95 program for G95
Program Project2nd
implicit none
character(len=40), allocatable :: a(:,:)
integer i,j,k,n,m,l,st
character(len=40) d
n=0; m=1; j=1;
open(10,file=&
'/Users/dariakowsari/Documents/Physics/Programming/Fortran95-Projects/Project2nd/input.txt', &
IOstat=st)
do while (st == 0)
read(10,*,IOstat=st) d
n=n+1
end do
st=0
do j=1,m
do while (st == 0)
allocate(a(1,m))
read(10,*,IOstat=st) (a(1,j),j=1,m)
m=m+1
deallocate(a)
end do
print*, n,m
end
여기 내 매트릭스입니다 : 여기 내 코드입니다.
당신의 코드는 실제로 세 줄을 계산합니다. m은 1로 초기화되고 iostat 오류 (단순히 파일의 끝임)와 관계없이 두 번째 루프에서 증가하기 때문에 m에 대해 2를 얻습니다. 조금은 제쳐두고,하지만 열려있는 성명서에 iostat을 지정하고 값을 확인하는 일은하지 않는 것이 좋지 않습니다. – agentp
파일을 열기 전에 파일 내용에 대해 무엇을 알고 있습니까? 항상 2 (분리 된) 단일 문자 요소 뒤에 3 (숫자, 실제) 요소가 오는'n' (알려지지 않은) 행으로 구성되어 있습니까? –
@High Performance Mark 우리는 행렬에 문자와 정수가 모두 들어 있다는 것을 알고 있습니다. 문자 및 m 열 정수를 포함하는 n 개의 열을 가질 수 있습니다. –