就是运行不了,不知道甚么原因,这是程序:main(){int nj,ne,nz,i,j,je,i1,i2,i3,i4,i8,j3,j4,j8,njf; int ie[50][3],zj[20][5],z[15][5]; float vm,p[8]={0,0,0,-5000,0,5000,0,0},t=0.1,a[1],b[1][2],c[1][2],g[1][1],aa[1],zk[15][10]; double e=210.e9; nj=4;ne=2;nz=4;vm=0.33; for(i=0;i<nj;i++) for(j=0;j<=1;j++) { scanf("%d",&z[i][j]); printf("z[i][j]=%d",z[i][j]); printf("/n");} /*坐标数组*/ for(i=0;i<nz;i++) for(j=0;j<=1;j++) { scanf("%d",&zj[i][j]); printf("zj[i][j]=%d",zj[i][j]); printf("/n");} /*约束数组*/ for(i=0;i<ne;i++) for(j=0;j<3;j++) { scanf("%d",&ie[i][j]); printf("%d",ie[i][j]); printf("/n");} /*布尔矩阵*/ for(je=0;je<ne;je++) /*单刚形成整刚*/ {i1=ie[je][0]-1; i2=ie[je][1]-1; i3=ie[je][2]-1; b[je][0]=z[i2][1]-z[i3][1]; b[je][1]=z[i3][1]-z[i1][1]; b[je][2]=z[i1][1]-z[i2][1]; c[je][0]=z[i3][0]-z[i2][0]; c[je][1]=z[i1][0]-z[i3][0]; c[je][2]=z[i2][0]-z[i1][0]; aa[je]=a[je]=0.5*(b[je][0]*c[je][1]-b[je][1]*c[je][0]); a[je]=e*t/(4.0*(1.0-vm*vm)*a[je]); { for(i=0;i<3;i++) { for(j=i;j<3;j++) { g[0][0]=b[je][i]*b[je][j]+0.5*(1.0-vm)*c[je][i]*c[je][j]; g[1][1]=c[je][i]*b[je][j]+0.5*(1.0-vm)*b[je][i]*b[je][j]; g[1][0]=vm*b[je][j]*c[je][i]+0.5*(1.0-vm)*b[je][i]*c[je][j]; g[0][1]=vm*c[je][j]*b[je][i]+0.5*(1.0-vm)*c[je][i]*b[je][j]; for(i3=0;i3<2;i3++) { if(i>=j) j8=i3; else j8=0; for(j3=j8;j3<2;j3++) {i4=2*(ie[je][i]-1)+i3; j4=2*(ie[je][j]-1)+j3; if(i4>j4) {i8=i4;i4=j4;j4=i8;} zk[i4][j4]+=g[i3][j3]*a[je]; }}}}}} for(i=0;i<nz;i++) /*置大数法*/ { j= zj[i][1]; zk[j][j]=zk[j][j]*1.0e25; p[j]=zk[j][j]*zj[1][2]; }}
出现floating error divid 0
|