目前,我正在学习使用FORTRAN,并且读/写语句的尴尬在我编写的代码中有点障碍。我将如何实现这样的事情:
int main(void) {
size_t length;
printf("Enter array length: ");
scanf("%zu", &length);
int array[length];
printf("Enter array: ");
for (size_t i = 0; i < length; ++i)
scanf("%d", &array[i]);
return 0;
}
! Sample program to demonstrate my intent
program main
integer :: length, i
integer, dimension(:), allocatable :: array
write (*, '(A)', advance='no') "Enter array length: "
read (*,*) length
allocate(arrray(length))
do i=1, length
read (*,*) array(i)
end do
dellocate(array)
end program main
另外,有没有办法在FORTRAN中创建C风格的可变长度数组?我想分配&#34;数组&#34;如果可能的话,在堆栈而不是堆上,而不使用&#34; allocate&#34;和#34; deallocate&#34;声明。
最后,作为FORTRAN新手,我非常感谢您编写我的代码以及FORTRAN参考的好网站。
编辑:这里的要点是能够在一行上输入所有数组元素。然而,&#34;阅读&#34;期望每个整数在一个单独的行上。