C ++:浮力程序不按计划输出

时间:2014-10-19 03:22:51

标签: c++ function exponent

我尝试制作一个程序,要求输入球体的半径和球体的重量。它使用这些输入来计算球体的浮力,程序决定它是否能漂浮在水中。但是,无论我的输入是什么,我都会得到“6.95207e-308”

这些是编程任务的说明:

  

“浮力是物体漂浮的能力。阿基米德的原理   声称浮力等于流体的重量   由被淹没的物体取代。浮力可以   计算方法:

     

浮力=(物体体积)次(流体的比重)

     

如果浮力大于或等于重量   对象然后它会浮动,否则它会下沉。

     

编写一个输入重量(以磅为单位)和半径(以英寸为单位)的程序   一个球体的英尺,并输出球体是否会下沉或漂浮   水。使用62.4磅/立方英尺作为水的比重。该   球体的体积由半径立方的(4/3)π倍计算。“

这是我的代码:

//Written by: Edward Santiago
//Assignment: HW_03_No14.cpp
//Class: CO SCI 243
//Date: October 17, 2014
//Description: Prime Numbers
#include <iostream>
#include <cmath>
#include <math.h>
using namespace std;
double sphere_volume (double);
double buoy_force (double,double);
int main ()
{

    double rad,volume,force,buoyancy;
    double weight;
    double water = 62.4;
    cout << "~~Buoyancy calculator~~" << endl;
    cout << "Please enter the radius of your sphere" << endl;
    cin >> rad;
    cout << "Please enter the weight of your sphere" << endl;
    cin >> weight;
    volume = sphere_volume(rad);
    buoyancy = buoy_force(volume,weight);
    cout << "The force of your sphere is "<<force<<endl;
    if (force <= water)
        cout << "Your sphere will float in the water"<<endl;
    else
        cout <<"Your sphere will sink :( "<<endl;
    return 0;
}
double sphere_volume (double radius)
{
    double vol;
    vol = ((4/3) * (M_PI) * (pow(radius,3)));
    return vol;
}
double buoy_force (double vol,double weight)
{
    double force;
    force = vol * weight;
    return force;
}

3 个答案:

答案 0 :(得分:1)

你给了#34;浮力&#34;然后打印出#34; force&#34;。

答案 1 :(得分:1)

你永远不会初始化力量。

buoyancy = buoy_force(volume,weight);
cout << "The force of your sphere is "<<force<<endl;

将作业更改为force = buoy_force(volume, weight)

答案 2 :(得分:1)

添加

force=buoyancy; 

在打印force之前。这是因为force未初始化并且您正在尝试打印它。