Fortran Coder

想统计一篇文章的总字数

查看数: 7141 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-11-28 15:52

正文摘要:

[Fortran] 纯文本查看 复制代码module constant          implicit none          integer n,nmax,cnum          char ...

回复

lanxueren121 发表于 2014-11-29 13:10:44
楚香饭 发表于 2014-11-28 17:26
你这代码问题太多了。语法错误一大堆,算法也不正确。

建议你直接使用这个代码:http://fcode.cn/code_gen ...

非常感谢你的耐心指导 初学fortran,想知道fortran可不可以统计一个文本中各个单词出现的次数····我编这个程序主要是为了这个目的,我的思路是先统计出文本总共的词数,不知道思路对不对···希望大师提点一下,万分感谢了
楚香饭 发表于 2014-11-28 17:26:18
本帖最后由 楚香饭 于 2014-11-28 17:28 编辑

你这代码问题太多了。语法错误一大堆,算法也不正确。

建议你直接使用这个代码:http://fcode.cn/code_gen-34-1.html 获取文件的行数和列数,每行的列数相加即可。

针对你的代码,我做了一些语法上的纠正。(算法就不纠正了,思路不对。)

最后,排版很重要、很重要、很重要、很重要

[Fortran] 纯文本查看 复制代码
module constant
         implicit none
         integer n,nmax,cnum
         character(*):: filename
         character*1 sign
         integer count
         integer error
 end module constant

 module dealfile
 use constant

 contains
 subroutine totalnum(filename,count,nmax,sign,cnum())
         integer count,nmax,i,n,tonum
         character*1 buffer(1:nmax)
               character(*):: filename
         character*1 sign
        character,allocatable :: string(:)
        integer,allocatable :: cnum(:)
         open(10,FILE=filename)      
         allocate(string(n))
         allocate(cnum(n))

     do n=1,count
         READ(10,100) string(n)
 100        format(<nmax>A1)
         write(*,*)string(n)
     buffer=string(n)
     cnum(1)=1
         do i=1,nmax-1
           if((buffer(i)==sign) .AND. (buffer(i+1)/=sign)) cnum(n)=cnum(n)+1
         end do
         tonum=tonum+cnum(n)
     end do
         close(10)
 end subroutine totalnum

 end module dealfile

 program main
 use constant
 use dealfile

         print*,'文件名:'
         read*,filename
        count=0
        open(10,file=filename,status='old')
        do while (.true.)
        read(10,*,iostat=error) line
        if(error/=0)exit
        count=count+1
        end do
close(10)

         print*,'行数:'
         write(*,*)count
         print*,'行的最大列数:'
         read*,nmax
         print*,'分隔符:'
         read(*,100),sign

 100        format(A1)
         call totalnum(filename,count,nmax,sign,cnum(n))
         print*,tonum
 end program

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-24 02:59

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表