Fortran程序读取输入文件并确定最小值和最大值以及它们在文件中的哪一行

时间:2019-03-10 10:34:32

标签: fortran

我需要编写程序来读取数字行数量未知的文件并确定该文件的最小和最大值的帮助。输入文件的格式设置为每行一个值。我不确定如何查找和存储最大值和最小值,以及它们没有固有功能时所处的行。 (指示不要使用内部函数)。任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:1)

收到的教育答案(不完全是代码):

   open(unit=122,file="path_to_file_with_extension"))
    do
     read(122,*) variab
    enddo

这段代码将永久性地逐行读取文件 (因此,一旦到达文件末尾,就会出现错误),并将读取的内容分配给变量 variab 。如果要在到达文件的最后一行时停止,则需要在读取命令中添加一个参数,特别是iostat参数,该参数根据读取命令的状态(read here)采用不同的值。这意味着,通过检查iostat的值,您可以检查是否到达文件末尾。完成后,您可以使用exit语句轻松退出do循环。

至于最小/最大部分,请考虑最小和最大的含义以及自己将如何进行检查。如果是我,并且我想查找文件中的最大数量,我可能会在脑海中做类似的事情:

  • “文件的最大数量是第一个(例如5)(为什么不对,对吗?),我在一个小记事本max:5,位置:1中书写”
  • “第二个数字(例如2)是否大于当前的最大值(即第一个数字)?”
  • “在这种情况下,不是,所以我不写下任何内容并继续”
  • “第三个数字(例如16)是否大于当前的最大值(即第一个数字)?”
  • “在我的情况下,所以我在记事本中写,最大:16,位置:3”

如果继续这样,您将找到文件的最大值及其所在位置。

最小值的过程将完全相同,但检查的是较小的数字,而不是较大的数字。

我可以给出整个代码,但是看到它很简单,它告诉我您只是在学习编程,我认为最好自己找出并填补答案的空白