用户自行输入起始值和终值,产生随机数的个数,fortran程序总是出错?
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/08/07 19:31:39
用户自行输入起始值和终值,产生随机数的个数,fortran程序总是出错?
生成指定两个数值间的多个随机数,随机数的个数用户自己输入,结果放在动态数组中
program main
implicit none
使用接口(interface)定义随机数范围
interface
function get_random(lbound,ubound)
real::lbound,ubound
real,allocatable::get_random(:) 返回值是数组类型
end function
end interface
定义产生结果的数组
real,allocatable::a(:)
定义产生随机数的个数
integer::size
定义随机数的值域范围
real::start_num,finish_num
用户自行输入随机数值域范围
write(*,*)"分别输入随机数的起始值和终值:"
read(*,*)start_num,finish_num
用户自行输入产生随机数的个数
write(*,*)"随机数的个数:"
read(*,*)size
动态分配存储结果的数组
allocate (a(size))
库存子程序,使用随机数之前调用
call random_seed()
a=get_random(start_num,finish_num,size)
write(*,*)a
end
子程序,用于生成随机数
function get_random(lround,uround,num)
real::lround,uround
\x05real,allocatable::get_random(:)
\x05real::t 产生0~1之间的随机数
\x05integer::num 产生随机数的个数
\x05real::length 所求随机数的长度
\x05integer::i 计数器
\x05allocate(get_random(num))
\x05length=uround-lround
\x05do i=1,num
\x05 call random_number(t) t是0~1之间的随机数
\x05 get_random(i)=lround+length*t
\x05end do
end
为什么运行时总有一个错误:f90:Fatal:There has been an internal compiler error (C0000005).
修改为interface
function get_random(lbound,ubound,num)
real::lbound,ubound
real,allocatable::get_random(:) 返回值是数组类型
integer:;num
end function
end interface
结果还是之前的错误
生成指定两个数值间的多个随机数,随机数的个数用户自己输入,结果放在动态数组中
program main
implicit none
使用接口(interface)定义随机数范围
interface
function get_random(lbound,ubound)
real::lbound,ubound
real,allocatable::get_random(:) 返回值是数组类型
end function
end interface
定义产生结果的数组
real,allocatable::a(:)
定义产生随机数的个数
integer::size
定义随机数的值域范围
real::start_num,finish_num
用户自行输入随机数值域范围
write(*,*)"分别输入随机数的起始值和终值:"
read(*,*)start_num,finish_num
用户自行输入产生随机数的个数
write(*,*)"随机数的个数:"
read(*,*)size
动态分配存储结果的数组
allocate (a(size))
库存子程序,使用随机数之前调用
call random_seed()
a=get_random(start_num,finish_num,size)
write(*,*)a
end
子程序,用于生成随机数
function get_random(lround,uround,num)
real::lround,uround
\x05real,allocatable::get_random(:)
\x05real::t 产生0~1之间的随机数
\x05integer::num 产生随机数的个数
\x05real::length 所求随机数的长度
\x05integer::i 计数器
\x05allocate(get_random(num))
\x05length=uround-lround
\x05do i=1,num
\x05 call random_number(t) t是0~1之间的随机数
\x05 get_random(i)=lround+length*t
\x05end do
end
为什么运行时总有一个错误:f90:Fatal:There has been an internal compiler error (C0000005).
修改为interface
function get_random(lbound,ubound,num)
real::lbound,ubound
real,allocatable::get_random(:) 返回值是数组类型
integer:;num
end function
end interface
结果还是之前的错误
function里面不用动态数组就好了,你的size已经传递到num里面了,所以function直接声明:integer::numreal::get_random(num)
而integerface里面改一下就好了,另外动态数组是不是该释放的?deallocate?
而integerface里面改一下就好了,另外动态数组是不是该释放的?deallocate?
用户自行输入起始值和终值,产生随机数的个数,fortran程序总是出错?
fortran的一个简单程序总是出错
fortran怎么产生随机数
1.编写程序,将用户输入的正整数转换成相应的星期值输出,如用户输入3,则输出Wednesday;用户输入0,则输出Sun
用java 编写一个程序,接受用户输入的一段英文文字,统计出其中的字符个数、单词个数和句子的个数.
C++产生随机数的程序
fortran求解方程一元二次方程的根,并输出.a,b,c的值由键盘输出.哪位大侠帮我看看这段程序哪个地方出错
编写一个程序,求出给定长和宽的长方形的周长和面积,并输出计算结果.其中长和宽的值由用户输入,用双精
编写一段程序,要求用户随机输入一个正整数,统计大于零且小于该正整数的奇数的个数以及奇数和
C语言程序出错,输入15个整数:1)统计其中奇数偶数之和;2)求能被5整除的数的个数以及它们的和.
用c语言编写:首先由电脑产生4个随机数(10以内),再由用户输入4个数,也是10以内,例如.
C语言.编写程序,根据用户输入的x和y值来计算xy的值.要求编写power(x,y)函数,来实