回 帖 发 新 帖 刷新版面

主题:changfangti


描述
由键盘输入一个形如长方体的盒子的长、宽、高,以及一个圆球的半径,判断该盒子能否完全装下圆球,能输出Y,否则输出N.(圆周率取3.14159)

输入格式
第一行长方体的三边长
第二行圆球的半径输出格式
Y或N输入样例
40.1 50.2 20
21
输出样例
N

回复列表 (共1个回复)

沙发

试问楼主是不知道算法还是代码有问题。
解决算法:输入的球体的直径小于等于长方体的每一边就可以。(长方体的内切球)
解决代码:代码比较简单。
以下是我写的球体能否装入长方体的算法,如果楼主能弄清楚这段程序,解决你的问题应该很简单。
如果还是不知道,请留言,我会帮你写出代码。谢谢。
#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;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册