| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4338 人关注过本帖
标题:不知道求球体体积的公式而用c语言求解球体的体积
只看楼主 加入收藏
flowerforeve
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2013-4-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
不知道求球体体积的公式而用c语言求解球体的体积
将球体分成均匀的正方体晶格,通过求这些晶格的体积来求这个球体的体积。
例如:已知球体体积18,正方体晶格边长6,当正方体晶格体心不在球体内,就将这部分体积忽略,如果体心正好在球体边界上,就记这部分晶格的体积为完整晶格的0.5。如果体心在球体内,而又只有一部分体积在球体内就记这个晶格的体积为完整晶格的0.67。
搜索更多相关主题的帖子: 球体 正方体 
2013-04-05 11:58
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:10 
球体与晶格的参照关系不明确。

关于“不知道求球体体积的公式”这句话我不知道该怎么理解。

如果是你不知道,那我可以告诉你。

不过我倾向于认为是你的任务要求不使用球体体积公式。

重剑无锋,大巧不工
2013-04-05 12:28
flowerforeve
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2013-4-5
收藏
得分:0 
回复 2楼 beyondyf
嗯!任务要求里面是说不能使用球体体积公式进行计算。而是要求计算各个晶格的体积之和来求这个球体的体积。
2013-04-05 15:52
flowerforeve
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2013-4-5
收藏
得分:0 
不好意思呀,题目里面不是“球体体积18”,而是“球体半径18”
2013-04-05 15:54
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:10 
你采用这种思维可以的,求极限嘛!但是你这样的话要知道有多少个方格,以及分布形态啊!采用循环加判断

Maybe
2013-04-05 17:12
flowerforeve
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2013-4-5
收藏
得分:0 
回复 5楼 邓士林
   
2013-04-05 17:23
flowerforeve
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2013-4-5
收藏
得分:0 
回复 5楼 邓士林
我编制的程序如下,分成多少个晶格用l来控制。感觉有点问题,谢谢大侠指点一下问题何在:#include<stdio.h>
#include<math.h>

void main()
{
int i,j,k,l;
float vol,er;
scanf("%d",&l);
vol=0;
for(i=0;i<=l;i++)
for(j=0;j<=l;j++)
for(k=0;k<=l;k++)
{
if(i*i+j*j+k*k<=l*l)
{
if((i+0.5)*(i+0.5)+(j+0.5)*(j+0.5)+k*k<=l*l||(i+0.5)*(i+0.5)+j*j+(k+0.5)*(k+0.5)<=l*l||i*i+(j+0.5)*(j+0.5)+(k+0.5)*(k+0.5)<=l*l)
{
if(i!=0&&j!=0&&k!=0)
vol=vol+8*(18.00000/l)*(18.00000/l)*(18.00000/l);
else
{
if((i==0&&j!=0&&k!=0)||(i!=0&&j==0&&k!=0)||(i!=0&&j!=0&&k==0))
vol=vol+4*(18.00000/l)*(18.00000/l)*(18.00000/l);
else
{
        if((i==0&&j==0&&k!=0)||(i==0&&j!=0&&k==0)||(i!=0&&j==0&&k==0))
vol=vol+2*(18.00000/l)*(18.00000/l)*(18.00000/l);
else
vol=vol+(18.00000/l)*(18.00000/l)*(18.00000/l);
}
}
}
else
{
if(i==l||j==l||k==l)
vol=vol+0.5*2*(18.00000/l)*(18.00000/l)*(18.00000/l);
else
{
if(i!=0&&j!=0&&k!=0)
vol=vol+8*0.67*(18.00000/l)*(18.00000/l)*(18.00000/l);
else
{
    if((i==0&&j!=0&&k!=0)||(i!=0&&j==0&&k!=0)||(i!=0&&j!=0&&k==0))
vol=vol+4*0.67*(18.00000/l)*(18.00000/l)*(18.00000/l);
else
vol=vol+2*0.67*(18.00000/l)*(18.00000/l)*(18.00000/l);
}
}
}
}
}
er=fabs(vol-24429)/24429;
printf("计算体积=%f\n误差=%f\n",vol,er);
}
2013-04-05 17:26
快速回复:不知道求球体体积的公式而用c语言求解球体的体积
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015995 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved