| 查看: 991 | 回复: 6 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
836449366金虫 (小有名气)
|
[求助]
计算圆周率的小程序出错 已有1人参与
|
|
|
我的程序是计算圆周率,原理是:在一个1*1的正方形及其内切圆(圆心为(0.5,0.5))中,随机数x和随机数y组成的点位于正方形内,但要判断这个点是否也在圆内,当点数很多时,圆内的点数除以总数再乘以4就等于圆周率了(即面积之比),我所编写的程序如下: program main implicit none integer*4 :: i,j,n,ii common i real*4 :: r call random_number(x) call random_number(y) real*4,dimension(i):: x,y r=sqrt((x-0.5)**2+(y-0.5)**2) ii=0 do n=2,8,1 i=10**n do j=1,i if ( r .le. 0.5 ) then ii=ii+1 endif enddo enddo write(*,"(a,3F6.3)" "pai=",4*ii/i,x,yend 求虫友帮帮忙,谢谢 |
» 猜你喜欢
职称评审没过,求安慰
已经有56人回复
最近几年招的学生写论文不引自己组发的文章
已经有5人回复
26申博自荐
已经有3人回复
A期刊撤稿
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
请教一个fortran小程序编译出错的问题,谢谢
已经有9人回复
836449366
金虫 (小有名气)
- 应助: 1 (幼儿园)
- 金币: 3039.8
- 散金: 62
- 红花: 4
- 帖子: 270
- 在线: 356.3小时
- 虫号: 1478273
- 注册: 2011-11-05
- 专业: 理论和计算化学
5楼2013-12-13 15:06:17
【答案】应助回帖
感谢参与,应助指数 +1
|
感觉你代码的错误蛮多,然后我改写了一下。 program main implicit none integer*4 :: num,i,j,ii real*4 :: r real*4,allocatable :: x( ,y(![]() num = 100000 allocate(x(num)) allocate(y(num)) call random_seed() call random_number(x) call random_number(y) ii = 0 do i = 1,num r = sqrt((x(i)-0.5)**2 + (y(i)-0.5)**2) if(r .le. 0.5) then ii = ii+1 end if end do write(*,"(a,F6.3)" "pai=",4.0*ii/numdeallocate(x,y) stop end program |
» 本帖已获得的红花(最新10朵)
2楼2013-12-12 20:30:56
836449366
金虫 (小有名气)
- 应助: 1 (幼儿园)
- 金币: 3039.8
- 散金: 62
- 红花: 4
- 帖子: 270
- 在线: 356.3小时
- 虫号: 1478273
- 注册: 2011-11-05
- 专业: 理论和计算化学
3楼2013-12-13 11:05:12
4楼2013-12-13 11:21:49













"pai=",4*ii/i,x,y
回复此楼
,y(
836449366