C ++初学者,第一个程序。寻找速度和距离

时间:2016-02-26 05:46:30

标签: c++ physics

嘿我是一个初学者参加C ++课程的介绍,这是我第一次使用公式:d=v0*t + 1/2*g*t^2v= v0 + g*t。其中v00处保持不变,而g9.807 m/s^2处保持不变。我一直收到这些错误,似乎无法修复它们,我确定这段代码不正确,你能帮我解决这个问题吗?

#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;

const float GRAVITY = 9.807, INITIALVELOCITY = 0;
int time;

void gettime()
{
    cout << "Please enter the time in seconds." << endl;
    cin >> time > endl;
}  //end function Time

int main(int argc, char *argv[])
{
    float distance, velocity, time;
    void getTime(void);

    cout.setf (ios::fixed,ios::floatfield);

    cin >> time;
    while (time > 0) {

        distance = INITIALVELOCITY * time + (0.5 * GRAVITY * pow(time, 2));
        velocity = INITIALVELOCITY + (GRAVITY * time);

        cout.precision (0);
        cout << endl << "WHEN THE TIME IS" << time << "SECONDS THE DISTANCE"
            "TRAVELED IS" << distance << "METERS THE VELOCITY IS" << velocity <<
            "METERS PER SECOND.";
        cout. precision(1);
        cout<< time << distance << velocity << endl << endl;

    }

    system ("PAUSE");
    return EXIT_SUCCESS;
} //end main

2 个答案:

答案 0 :(得分:1)

  • 全局变量的名称time用作标准库函数之一的名称,因此您必须为变量指定另一个名称。
  • > endl {/ 1}} cin >> time后删除垃圾gettime()

至少这会使代码可编辑。 然后,输入正值将导致无限循环。

更新:我认为删除全局变量int time;和函数gettime()是好的,因为它们会造成麻烦并且不会被使用。

答案 1 :(得分:0)

除了MikeCAT提到的问题之外,您实际上并没有调用gettime函数。行void gettime(void);是函数声明,而不是函数调用。摆脱void的:gettime();

之后,您可能会看到有一行cin >> time;。这接受用户输入,但它没有提示,所以看起来程序什么都不做。

就获得时间而言,如果你gettime()返回一个int:int gettime()并且没有time被声明为全局变量,那就更好了。