谁帮我看看这个算法错在哪了,谢谢
#include <math.h>#include <iostream.h>
#include<fstream.h>
#include"iomanip.h"
int loc,e;
float a,b,g,h,anu;
MATD()
{ int i,j,l,s,p,m;
float afh1,afh2,fh1,fh2,d,n,k1,ab;
afh1=-1;afh1=1;afh1=1;afh1=-1;
afh2=-1;afh2=-1;afh2=1;afh2=1;
d=e*h*h*h/(12*(1-anu*anu));
n=d/(60*a*b);
ab=b*b/(a*a);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{fh1=afh1*afh1;
fh2=afh2*afh2;
k1=3*n*(15.0*(ab*fh1+fh2/ab)+(14-4*anu+5*ab+5.0/ab)*fh1*fh2);
k1=-3*n*b*((2+3*anu+5.0/ab)*fh1*afh2+15*afh2/ab+5*anu*fh1*afh2);
k1=3*n*a*((2+3*anu+5*ab)*fh2*afh1+15*afh1*ab+5.0*anu*fh2*afh1);
k1=-3*n*b*((2+3*anu+5.0/ab)*fh1*afh2+15*afh2/ab+5*anu*fh1*afh2);
k1=n*b*b*(2*(1-anu)*fh1*(3+5*fh2)+5*(3+fh1)*(3+fh2)/ab);
k1=-15*n*anu*a*b*(afh1+afh1)*(afh2+afh2);
k1=3*n*a*((2+3*anu+5*ab)*fh2*afh1+15*afh1*ab+5*anu*fh2*afh1);
k1=-15*n*anu*a*b*(afh1+afh1)*(afh2+afh2);
k1=n*a*a*(2*(1-anu)*fh2*(3+5*fh1)+5*(3+fh1)*(3+fh2)*ab);
for(m=0;m<3;m++)
for(l=0;l<3;l++)
{s=3*i+m;
p=3*j+l;
g=k1; } }
}
void main()
{int i,j,l,v,maxnel,inode,nodei,idofn,nrows,nrowe,jnode,nodej,jdofn,
ncols,ncole,nel,maxnod,a1,b1;
float t,k2,sum,astif,ast,k={0};
ifstream ifile("e:\\shaohuan001.txt");
ifile>>e>>h>>anu>>a>>b>>v>>maxnel>>maxnod;
for(i=0;i<12;i++)
for(j=0;j<12;j++)
t=0;
for(j=0;j<maxnel;j++)
{
ifile>>loc>>loc>>loc>>loc;
loc--;loc--;loc--;loc--;
if(loc%6==0)
i=(loc-1)%6;
else
i=loc%6-1;
t=cos(i*v);t=-sin(i*v);t=sin(i*v);t=cos(i*v);t=1;
t=cos(i*v); t=-sin(i*v);t=sin(i*v);t=cos(i*v); t=1;
t=cos(i*v);t=-sin(i*v); t=sin(i*v);t=cos(i*v);t=1;
t=cos(i*v);t=-sin(i*v);t=sin(i*v);t=cos(i*v);t=1;
MATD();
for(a1=0;a1<12;a1++)
for(b1=0;b1<12;b1++)
{ sum=0.0;
for(l=0;l<12;l++)
sum=sum+g*t; }
for(a1=0;a1<12;a1++)
for(b1=0;b1<12;b1++)
{ k2=0.0;
for(l=0;l<12;l++)
k2=k2+t*sum;
}
for(a1=0;a1<3*maxnod;a1++)
for(b1=0;b1<3*maxnod;b1++)
astif=0;
for(nel=0;nel<maxnel;nel++)
for(inode=0;inode<4;inode++)
{nodei=loc;
for(idofn=0;idofn<3;idofn++)
{nrows=nodei*3+idofn;
nrowe=inode*3+idofn;
for(jnode=0;jnode<4;jnode++)
{nodej=loc;
for(jdofn=0;jdofn<3;jdofn++)
{ ncols=nodej*3+jdofn;
ncole=jnode*3+jdofn;
astif=astif+k2;
} } } }
for(a1=0;a1<3*maxnod;a1++)
for(b1=0;b1<3*maxnod;b1++)
k=k+astif;}
for(a1=0;a1<3*maxnod;a1++)
{for(b1=0;b1<3*maxnod;b1++)
cout<<k<<"\t";}
cout<<endl;
}
[ 本帖最后由 风花雪月 于 2007-6-15 11:01 编辑 ] 是不能编译还是别的什么错误?请说明 自己写得程序,一句注释都没有,别人怎么看?建议加上注释。 错误这么多?很多基本的错误,你是不是想让大家帮你调试啊,自己偷懒?:@@ 没注释,看不懂啊
页:
[1]