主题:changfangti
Xewenh
[专家分:30] 发布于 2011-12-12 21:11:00
描述
由键盘输入一个形如长方体的盒子的长、宽、高,以及一个圆球的半径,判断该盒子能否完全装下圆球,能输出Y,否则输出N.(圆周率取3.14159)
输入格式
第一行长方体的三边长
第二行圆球的半径输出格式
Y或N输入样例
40.1 50.2 20
21
输出样例
N
回复列表 (共1个回复)
沙发
龙母绘龙 [专家分:50] 发布于 2011-12-13 14:08:00
试问楼主是不知道算法还是代码有问题。
解决算法:输入的球体的直径小于等于长方体的每一边就可以。(长方体的内切球)
解决代码:代码比较简单。
以下是我写的球体能否装入长方体的算法,如果楼主能弄清楚这段程序,解决你的问题应该很简单。
如果还是不知道,请留言,我会帮你写出代码。谢谢。
#include <stdio.h>
#define ZIRO 0.00000001
/*
//Function : measureA()
//Description :根据长方体的三个变量确定的判断表达式函数(长宽高的平方和)
//Input : 长方体的长宽高分别为:CuLength,CuWidth,CuHeight
//Output : 长宽高的平方和
*/
float measureA( float CuLength, float CuWidth, float CuHeight)
{
if (CuLength != NULL && CuWidth != NULL && CuHeight !=NULL)
//if (CuLength > ZIRO && CuWidth > ZIRO && CuHeight > ZIRO)
{
float CuLengthSq = CuLength * CuLength;
float CuWidthSq = CuWidth * CuWidth;
float CuHeigthSq = CuHeight * CuHeight;
float sum = CuLengthSq + CuWidthSq + CuHeigthSq;
return sum;
}
}
/*
//Function : measureB()
//Description :根据球体的半径变量确定的判断表达式函数
//Input : 球体的半径Radius
//Output : 4*Radius
*/
float measureB( float Radius)
{
if (Radius !=NULL)
// if (Radius > ZIRO)
{
float RadiusSq = 4 * Radius * Radius;
return RadiusSq;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
float len =0;
float wid =0;
float hei =0;
float rad =0;
int a;
printf("please input the lenth,width,heigth of the cuboid:");
scanf("%f,%f,%f",&len,&wid,&hei);
printf("please input the radius of the sphere:");
scanf("%f",&rad);
float ResultA = measureA(len,wid,hei);
float ResultB = measureB(rad);
if(ResultA >= ResultB)
printf("Y");
else
printf("N");
scanf("%d",&a);
return 0;
}
我来回复