| 查看: 1359 | 回复: 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 求虫友帮帮忙,谢谢 |
» 猜你喜欢
明天放榜?
已经有5人回复
时间戳变了,能看出什么问题?
已经有11人回复
欢迎发来filecode的Mz6后的代码验证其规律
已经有109人回复
重要消息,中午系统在维护
已经有10人回复
两姐妹,一个辛辛苦苦30岁工作当大学教师,另一个23岁就工作当开车教练
已经有7人回复
投稿咨询
已经有6人回复
时间戳又变了8-15
已经有26人回复
今天维护系统维护 祝所有人 高中
已经有9人回复
哪位老哥知道今年的国自然具体哪一天放榜?
已经有16人回复
2027广东省杰青
已经有8人回复
» 本主题相关价值贴推荐,对您同样有帮助:
请教一个fortran小程序编译出错的问题,谢谢
已经有9人回复
【答案】应助回帖
感谢参与,应助指数 +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
836449366
金虫 (小有名气)
- 应助: 1 (幼儿园)
- 金币: 3039.8
- 散金: 62
- 红花: 4
- 帖子: 270
- 在线: 356.3小时
- 虫号: 1478273
- 注册: 2011-11-05
- 专业: 理论和计算化学
5楼2013-12-13 15:06:17
836449366
金虫 (小有名气)
- 应助: 1 (幼儿园)
- 金币: 3039.8
- 散金: 62
- 红花: 4
- 帖子: 270
- 在线: 356.3小时
- 虫号: 1478273
- 注册: 2011-11-05
- 专业: 理论和计算化学
6楼2013-12-13 21:01:02
7楼2013-12-13 22:10:55










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