Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran矩阵生成代码错误_Fortran_Fortran90_Fortran95 - Fatal编程技术网

Fortran矩阵生成代码错误

Fortran矩阵生成代码错误,fortran,fortran90,fortran95,Fortran,Fortran90,Fortran95,这段fortran代码应该是从txt文件中的简单矩阵表复制数据,然后根据每行和每列的先前等级计算等级和平均值。由于某些原因,我无法打印出分数或平均值,它们显示为空白或带有0或星星。该程序在从txt文件打印矩阵表后运行时崩溃,它说错误是访问冲突-所以根本没有什么帮助。以下是我目前的代码: program calculate1 real,dimension(:,:),allocatable :: a character(200)::line print *,'How many rows are th

这段fortran代码应该是从txt文件中的简单矩阵表复制数据,然后根据每行和每列的先前等级计算等级和平均值。由于某些原因,我无法打印出分数或平均值,它们显示为空白或带有0或星星。该程序在从txt文件打印矩阵表后运行时崩溃,它说错误是访问冲突-所以根本没有什么帮助。以下是我目前的代码:

program calculate1
real,dimension(:,:),allocatable :: a
character(200)::line
print *,'How many rows are there?'
read *,n !amount of rows
print *,'How many columns are there?'
read *,m !amount of columns
allocate (a(n+1,m+1))
open(1, file='in1.txt')
call print_out (a,n+1,m+1)
Close(1);

contains
subroutine print_out(b,n,m)
real,dimension(:,:):: b
character(200)::line(n)
character(1)::g
write(*,'(10x)',advance='no')
do j=2,m-1
write(*,100,advance='no'),'hw',j-1
enddo
100 format(a2,i2,3x)
print '(a6,a6)','exam  ','grade  '
do i=1,n-1 !makes rows from data
read(1,'(a)') line(i)  !read from in1.txt
write(*,'(a)') line(i) !write to screen
enddo
do i=1,n         !makes (m+1)th column
b(i,m+1)= sum(b(i,1:m-1))+3*b(i,m)
enddo
do j=1,m+1             !makes (n+1)th row
b(n+1,j)= sum(b(1:n,j))/n
enddo
101 format(a8,4x,20f8.2)  ! format for average print
print 101, 'averages', b(n+1,j)
endsubroutine
endprogram 
下面是in1.txt文件中的内容:

jackson     4.    4.    4.2   8.
johnson     4.    2.    2.11  3.
sugimoto    1.    0.    1.5   0.
wong        3.5   3.    3.    2.    

由于这是家庭作业,我只能提示:您的代码将文件中的一行读入字符变量并忽略它。然后,它对未分配任何值的矩阵
b
执行一些操作。如果在write语句中提供了错误类型的变量,例如format语句指定实数时的字符变量,Fortran程序通常会崩溃

因为这是家庭作业:

  • 始终使用隐式无
  • 缩进将使您的代码更易于阅读,也更便于SO的帮助
  • 使用循环的矩阵和可以更容易地使用Fortran的数组语法进行编程;如果您正在学习用Fortran编程,请学习数组语法
  • 避免使用全局变量和幻数,因为您的代码至少有其中一个

由于这是作业,我只能提示:您的代码将文件中的一行读取到字符变量中,并忽略它。然后,它对未分配任何值的矩阵
b
执行一些操作。如果在write语句中提供了错误类型的变量,例如format语句指定实数时的字符变量,Fortran程序通常会崩溃

因为这是家庭作业:

  • 始终使用隐式无
  • 缩进将使您的代码更易于阅读,也更便于SO的帮助
  • 使用循环的矩阵和可以更容易地使用Fortran的数组语法进行编程;如果您正在学习用Fortran编程,请学习数组语法
  • 避免使用全局变量和幻数,因为您的代码至少有其中一个

谢谢保罗,完全忘记了那个标签谢谢保罗,完全忘记了那个标签