24小时热门版块排行榜    

查看: 796  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xmq135828

铁杆木虫 (著名写手)

[求助] 有没有人运行过这样的程序,C语言的

#include
#include
#include
#include
#include
double a,b,c,al,be,ga,sal,sbe,sga,cal,cbe,cga,mm,nn,ss,f1,f2,f3;
/*以下是变量的说明
a,b,c:三个基矢的长度
al,be,ga:三个基矢之间的夹角(角度值)
sal,sbe,sga:三个基矢之间的夹角的正弦值
cal,cbe,cga:三个基矢之间的夹角的余弦值
mm,nn,ss:倒易点阵三个基矢之间的夹角的余弦值
f1,f2,f3:倒易点阵的三个基矢的长度
fvect:矢量类型

以下为函数说明
angle:计算倒易点阵中两个矢量间的夹角,即正空间中两个面的夹角
input:输入参数
*/
struct fvect
{
float x,y,z;
};
struct fvect cef,rif;
float angle(struct fvect aa,struct fvect bb)
{
float se1=aa.x*bb.x*f1*f1+aa.y*bb.y*f2*f2+aa.z*bb.z*f3*f3+(aa.x*bb.y+bb.x*aa.y)*ss+(aa.x*bb.z+bb.x*aa.z)*nn+(aa.y*bb.z+bb.y*aa.z)*mm;
float se2=sqrt(aa.x*aa.x*f1*f1+aa.y*aa.y*f2*f2+aa.z*aa.z*f3*f3+(aa.x*aa.y+aa.x+aa.y)*ss+(aa.x*aa.z+aa.x*aa.z)*nn+(aa.y*aa.z+aa.y*aa.z)*mm);
float se3=sqrt(bb.x*bb.x*f1*f1+bb.y*bb.y*f2*f2+bb.z*bb.z*f3*f3+(bb.x*bb.y+bb.x*bb.y)*ss+(bb.x*bb.z+bb.x*bb.z)*nn+(bb.y*bb.z+bb.y*bb.z)*mm);

float ee=se1/se2/se3;
if(fabs(ee)<0.01) ee=0;
return (ee);
}

void input(void)
{
double pi,angle1;int t;
struct fvect p1,p2,p3;
printf("please input a,b,c\n";
scanf("%lf %lf %lf",&a,&b,&c);
printf("please input al,be,ga\n";
scanf("%lf %lf %lf",&al,&be,&ga);
pi=3.1415926/180;t=1;
al=al*pi;be=be*pi;ga=ga*pi;
sal=sin(al);sbe=sin(be);sga=sin(ga);
cal=cos(al);cbe=cos(be);cga=cos(ga);
mm=(cal*cbe-cga)/sal/sbe;
nn=(cal*cga-cbe)/sal/sga;
ss=(cbe*cga-cal)/sbe/sga;
f1=a*sal/(sqrt(t-cal*cal-cbe*cbe-cga*cga+cal*cbe*cga+cal*cbe*cga));
f2=b*sbe/(sqrt(t-cal*cal-cbe*cbe-cga*cga+cal*cbe*cga+cal*cbe*cga));
f3=c*sga/(sqrt(t-cal*cal-cbe*cbe-cga*cga+cal*cbe*cga+cal*cbe*cga));
printf("please input the first plane\n";
scanf("%lf %lf %lf",&cef.x,&cef.y,&cef.z);
printf("please input the second plane\n";
scanf("%lf %lf %lf",&rif.x,&rif.y,&rif.z);
angle1=angle(cef,rif);
angle1=acos(angle1);
printf("The angle between two plane is %f",angle1*180/3.1415926);
}

void main()
{
input();
system("pause";
}

各位帮忙看看,这段代码有什么错误啵
运行时总是提示main函数返回值不能为空,改为int后,输入参数后的运行结果如附图

运行结果
回复此楼
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

cwzheng

木虫 (正式写手)

没仔细看程序,结果上看应该是溢出了,仔细检查下吧,分母为零的时候经常出现这种结果
5楼2012-03-12 17:58:50
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

xmq135828

铁杆木虫 (著名写手)


engle028(金币+1): 感谢交流 2012-03-12 12:37:09
额~~~~,晕~~~
处应该为 ; )     .........
2楼2012-03-12 12:15:02
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

wydmhy

至尊木虫 (职业作家)

【答案】应助回帖


感谢参与,应助指数 +1
engle028(金币+1): 感谢交流 2012-03-12 12:37:03
支持2楼,缺少右括号吧!
3楼2012-03-12 12:29:48
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

xmq135828

铁杆木虫 (著名写手)

引用回帖:
3楼: Originally posted by wydmhy at 2012-03-12 12:29:48:
支持2楼,缺少右括号吧!

二楼就是楼主,帖子发出来后突然发现代码和小木虫中的“表情”部分“不谋而合”,才声明一下的
4楼2012-03-12 17:24:32
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见