嘿我是一个初学者参加C ++课程的介绍,这是我第一次使用公式:d=v0*t + 1/2*g*t^2
和v= v0 + g*t
。其中v0
在0
处保持不变,而g
在9.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
答案 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
被声明为全局变量,那就更好了。