C语言求小岛面积

C语言求小岛面积,第1张

#define N 20

void main() {

int n,i,j,k,b,a[N][N],s

scanf("%d",&n)if ( n>N ) n=N

for ( i=0i<ni++ ) for ( j=0j<nj++ ) scanf("%d",&a[i][j])

for ( i=s=0i<ni++ )

for ( j=0j<nj++ ) {

  b=0for ( k=0k<ik++ ) if ( a[k][j] ) { b=1break} if ( !b ) continue

  b=0for ( k=i+1k<nk++ ) if ( a[k][j] ) { b=1break} if ( !b ) continue

  b=0for ( k=0k<jk++ ) if ( a[i][k] ) { b=1break} if ( !b ) continue

  b=0for ( k=j+1k<nk++ ) if ( a[i][k] ) { b=1break} if ( !b ) continue

  s++

}

printf("%d\n",s)

}

%% 画陆地图

subplot(1,2,1)

% 等高线

x=-1000:5:1000

y=x

[x y]=meshgrid(x,y)

z=30*(1-(x.^2+y.^2)/10^6)

[c,h]=contour(x,y,z,10)%画10条等高线

set(h,'ShowText','on')%显示等高线的值

axis('equal')

title('小岛等高线')

%三维图

subplot(1,2,2)

mesh(x,y,z)

title('小岛三维图')

%% 求高潮与低潮时小岛露出水面的面积比。

%由于等高线是圆,故只需求出高低潮时小岛等高线圆面积即可

%涨潮时:z=-2,既有30*(1-(X^2+Y^2)/10^6)=-2

%此等线围成面积 area_h=pi*r^2=pi*(X^2+Y^2)

%故小岛高潮时面积:

area_h=pi*(1+2/30)*10^6

%同理,低潮时:

area_l=pi*(1-2/30)*10^6

%故面积比为

area_ratio=area_h/area_l

http://zhidao.baidu.com/question/159115790.html?si=3

目前最精确测定岛屿面积的方法是卫星遥感技术,分辨率为2.5米,可以精确测量出面积几百平方米岛屿面积的大小。也可以用GPS测定,用美国的GARMIN系列或台湾的合众思壮系列都可以(前者的精度要高一些)使用其测量面积功能绕岛一周即可测出面积。如果不用以上方法,用笨方法把小岛近似看成规则形状,通过几何运算也可大致推算出小岛的面积。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12056601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存