⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sx05.c

📁 解决很多地下水数值模拟问题
💻 C
字号:
#include<stdio.h>  /* PRACTICE 05 (DF IM D2)*/
#include<math.h>
void  main()
{
float  h0[15][6],h[15][6];
int    ni, nj, ni01,nj01,ni02,nj02,mit,i,j;
float  dx,dz;
double dfmax, df;
        ni=14;
    	nj=5;
        ni01=ni-1;
        nj01=nj-1;
        ni02=ni-2;
        nj02=nj-2;
        dx=100.0;
        dz=dx;
for(i=1; i<=6;i++)/*DO 10 I=2,7*/
{
 h0[i][0]=5.0;
  h[i][0]=5.0;
}
for (i=8;i<=ni01;i++)/*DO 12 I=9,NI01*/
		h[i][0]=0.0;
for(i=1;i<=ni01;i++)/*DO 5 I=2,NI01*/
	{
	for(j=1;j<=nj01;j++)/*DO 5 J=2,NJ01*/
        h0[i][j]=0.0;
	}
        mit=0;
loop20: mit=mit+1;
 	    dfmax=0.0;
for(j=1;j<=nj01;j++)/*DO 25 J=2,NJ01*/
	{
	h0[0][j]=h0[2][j];
    h0[ni][j]=h0[ni02][j];
	}
for(i=1;i<=ni01;i++)/*DO 27 I=2,NI01*/
	  h0[i][nj]=h0[i][nj02];
for(i=1;i<=ni01;i++)/*DO 30 I=2,NI01*/
		{for(j=1;j<=nj01;j++)/*DO 30 J=2,NJ01*/
	   	h[i][j]=(h0[i-1][j]+h0[i+1][j]+h0[i][j-1]+h0[i][j+1])/4.;
		}
    h[7][0]=(h0[6][0]+h0[8][0]+2*h0[7][1])/4.;
for(i=1;i<=ni01;i++)/*DO 45 I=2,NI01*/
    for(j=0;j<=nj01;j++)/*DO 45 J=1,NJ01*/
	   {
        df=fabs(h[i][j]-h0[i][j]);
       	if (df>dfmax) dfmax=df;
	   }

if (dfmax<0.0001)
    {
	printf("\n");
	printf("H[i][j]");
	for(j=0;j<=nj01;j++)
		for(i=1;i<=ni01;i++)
		  printf("%-5.2f   ",h[i][j]);
	}
else
	{
	for (i=1;i<=ni01;i++)/*DO 50 I=2,NI01*/
	{for(j=1;j<=nj01;j++)/*DO 50 J=2,NJ01*/
	     h0[i][j]=h[i][j];
	}
	h0[7][0]=h[7][0];
        goto  loop20;
	}
	return ;
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -