无聊写了个计算平抛运动参数的代码,望大佬指正

他乡清客 2019-04-24 02:03:54
#include "stdafx.h" #include <iostream> using namespace std; #define g 9.8 int _tmain(int argc, _TCHAR* argv[]) { double x,h,t,Vx,Vy;//定义变量,分别表示水平方向位移,竖直方向位移,运动时间,水平方向速度分量,竖直方向分量// x=0; h=0; t=0; Vx=0; Vy=0; cout << "请输入水平位移,如该量未知请输入0" << endl; //依次输入变量// cin >> x; //对于未知量输入时用0表示// cout << "请输入竖直位移,如该量未知请输入0" << endl; //已知量用具体数值表示// cin >> h; //由于使用h=1/2*g*t*t、Vy=g*t和x=Vx*t三个公式// cout << "请输入运动时间,如该量未知请输入0" << endl; //所以输入时至少有两个已知量且x和Vx必须知道其中之一具体的值// cin >> t; //才能求出其他所有的值// cout << "请输入水平方向速度分量,如该量未知请输入0" << endl; cin >> Vx; cout << "请输入竖直方向速度分量,如该量未知请输入0" << endl; cin >> Vy; if(x!=0 && h!=0) //利用选择结构,分情况处理// { t=sqrt((2*h)/g); Vx=x/t; Vy=(2*h)/t; } else if(x!=0 && t!=0) { h=0.5*g*t*t; Vx=x/t; Vy=g*t; } else if(x!=0 && Vx!=0) { t=x/Vx; Vy=g*t; h=0.5*g*t*t; } else if(x!=0 && Vy!=0) { t=Vy/g; h=0.5*g*t*t; Vx=x/t; } else if(Vx!=0 && h!=0) { t=sqrt(2*h/g); x=Vx*t; Vy=g*t; } else if(Vx!=0 && t!=0) { h=0.5*g*t*t; x=Vx*t; Vy=g*t; } else if(Vx!=0 && Vy!=0) { t=Vy/g; h=0.5*g*t*t; x=Vy*t; } cout << "x=" << x << endl; //依次输出各物理量的值// cout << "h=" << h << endl; cout << "t=" << t << endl; cout << "Vx=" << Vx << endl; cout << "Vy=" << Vy << endl; return 0; } 新手敲着练手,有个问题不太明白,不加#include <cmath> sqrt函数同样能计算出来是为什么?
...全文
158 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Italink 2019-04-24
  • 打赏
  • 举报
回复
iostream库内部-》istream-》ostream-》ios-》xlocnum中引入了cmath

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧