求一个能计算数据个数的FORTRAN程序!
要求能批处理。比如读文件1.TXT,输出RESULT_1.TXT这样。每个文件的数据长度不确定,但是是单列的。最小是个位数,最大是五位数。原始数据举例,比如1.TXT里包...
要求能批处理。比如读文件1.TXT,输出RESULT_1.TXT这样。每个文件的数据长度不确定,但是是单列的。最小是个位数,最大是五位数。
原始数据举例,比如1.TXT里包含
0
0
0
0
0
1
1
2
3
100
100
100
1000
10000
我希望输出是 (比如RESULT_1.TXT)
0 5 (原始数据里0出现5次)
1 2 (出现两次,以此类推。输出的数据最大也是五位数)
2 1
3 1
100 3
1000 1
10000 1 展开
原始数据举例,比如1.TXT里包含
0
0
0
0
0
1
1
2
3
100
100
100
1000
10000
我希望输出是 (比如RESULT_1.TXT)
0 5 (原始数据里0出现5次)
1 2 (出现两次,以此类推。输出的数据最大也是五位数)
2 1
3 1
100 3
1000 1
10000 1 展开
1个回答
展开全部
character*40 filename
integer,allocatable::a(:),b(:),c(:)
filename='1.txt'
call get_para(filename,n,min,max)
allocate(a(n),b(n),c(n))
open(12,file=filename,status='old')
read(12,*) (a(i),i=1,n)
close(12)
k=1
do j=min,max
sum=0
do i=1,n
if(a(i).eq.j)then
sum=sum+1
b(k)=j
c(k)=sum
endif
enddo
if(sum.ne.0) k=k+1
enddo
k=k-1
open(13,file='RESULT_1.txt',status='unknown')
do i=1,k
write(13,*) b(i),c(i)
enddo
close(13)
deallocate(a,b,c)
end
subroutine get_para(filename,n,min,max)
real temp
character*(*) filename
n=0
open(11,file=filename,status='old')
do while(.not.eof(11))
read(11,*) temp
n=n+1
if(temp.gt.max) max=temp
if(temp.lt.min) min=temp
enddo
close(11)
end subroutine
integer,allocatable::a(:),b(:),c(:)
filename='1.txt'
call get_para(filename,n,min,max)
allocate(a(n),b(n),c(n))
open(12,file=filename,status='old')
read(12,*) (a(i),i=1,n)
close(12)
k=1
do j=min,max
sum=0
do i=1,n
if(a(i).eq.j)then
sum=sum+1
b(k)=j
c(k)=sum
endif
enddo
if(sum.ne.0) k=k+1
enddo
k=k-1
open(13,file='RESULT_1.txt',status='unknown')
do i=1,k
write(13,*) b(i),c(i)
enddo
close(13)
deallocate(a,b,c)
end
subroutine get_para(filename,n,min,max)
real temp
character*(*) filename
n=0
open(11,file=filename,status='old')
do while(.not.eof(11))
read(11,*) temp
n=n+1
if(temp.gt.max) max=temp
if(temp.lt.min) min=temp
enddo
close(11)
end subroutine
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询