C++ 如何使用c+;计算表中每年的更新平均速度+;?
在您的程序中,您将让用户输入改进的百分比 每年的火箭速度(最高但不超过光速!)。您的程序将 然后询问用户他们愿意等待的最长年限 在他们离开之前把地球挖出来。在此步骤中使用while循环实现简单错误 通过反复询问用户直到他们给出有效输入进行检查。百分比 必须介于0和100之间,等待时间必须为正值 整数 接下来,您的程序将使用for循环生成一个表。那张桌子有 四列,一行离开,紧接着一行离开 用户愿意等待的年份。第一列将包含离职年份。 第二列包含火箭能够达到的火箭速度 那一年。每年新的火箭速度通过以下方程式计算: 速度=速度+(光速-速度)*(提高/100) 我能够在我试图制作的表格中正确地打印出每年的数据,但是我很难想出如何使用循环来计算火箭每年的速度。我很确定我应该使用嵌套的for循环,但是对于我现在拥有的代码,它被困在一个无限循环中。任何正确方向的指导都将不胜感激C++ 如何使用c+;计算表中每年的更新平均速度+;?,c++,C++,在您的程序中,您将让用户输入改进的百分比 每年的火箭速度(最高但不超过光速!)。您的程序将 然后询问用户他们愿意等待的最长年限 在他们离开之前把地球挖出来。在此步骤中使用while循环实现简单错误 通过反复询问用户直到他们给出有效输入进行检查。百分比 必须介于0和100之间,等待时间必须为正值 整数 接下来,您的程序将使用for循环生成一个表。那张桌子有 四列,一行离开,紧接着一行离开 用户愿意等待的年份。第一列将包含离职年份。 第二列包含火箭能够达到的火箭速度 那一年。每年新的火箭速度通过以下
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
int main()
{
int percentIncrease = 0;
int maxYears = -1;
float speedLight = 299792;
while((percentIncrease <= 0) || (percentIncrease >= 100))
{
cout << "What percentage do rocket speeds increase by each year?" << endl;
cin >> percentIncrease;
}
while(maxYears < 0)
{
cout << "What is the maximum number of years you are willing to wait on
earth before you leave?" << endl;
cin >> maxYears;
}
cout << "Start year|\tAvg Speed|\tEarth ETA|\tYour ETA" << endl;
for(int i = 2018; i <= (maxYears + 2018); ++i)
{
cout << i << endl;
for(int j = 10000; i <= (maxYears + 2018); j = j + (speedLight - j) *
(percentIncrease/100))
{
cout << "\t" << j << endl;
}
}
return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
整数百分比增加=0;
int最大年份=-1;
浮式电子闪光灯=299792;
而((增加百分比=100))
{
不能增加;
}
而(最大年数<0)
{
最长时间;
}
cout我认为考虑这个问题的一个好方法是,您必须逐行打印表。因此,您的第一个for循环似乎就是这样做的
在每一行中,您必须首先打印年份(从当前年份开始),直到最大年份。使第一个for循环在年份中迭代是一个不错的选择(即使i
从2018
一直到maxYears+2018
).其次,在通过提供的方程式计算改进后,您必须打印每年的速度。(我假设在问题描述中给出的第一个速度是10000?如果不是,起始值是多少?)因为你只会打印一个数字,你不需要第二个循环。只需计算新的速度并打印它。至于第三列和第四列,我不确定确切的要求是什么,所以现在它在代码中是空白的
我根据自己的评论修改了代码,加上一些与我对问题描述的理解、编码最佳实践和风格选择相关的其他修改(请阅读代码下方,了解更多原因)
#包括
//--1
int main()
{
//--2
恒浮闪光灯=299792;
const int startingYear=2018年;
//--3
浮动百分比增加=0;
而((增加百分比=100))
{
std::不能增加百分比;
}
//--4
int最大年份=-1;
而(最大年数<1)
{
std::cout-maxYears;
}
std::cout我认为考虑这个问题的一个好方法是,您必须逐行打印表。因此,您的第一个for循环似乎就是这样做的
在每一行中,您必须首先打印年份(从当前年份开始),直到最大年份。使第一个for循环在年份中迭代是一个不错的选择(即使i
从2018
一直到maxYears+2018
).其次,在通过提供的方程式计算改进后,您必须打印每年的速度。(我假设在问题描述中给出的第一个速度是10000?如果不是,起始值是多少?)因为你只会打印一个数字,你不需要第二个循环。只需计算新的速度并打印它。至于第三列和第四列,我不确定确切的要求是什么,所以现在它在代码中是空白的
我根据自己的评论修改了代码,加上一些与我对问题描述的理解、编码最佳实践和风格选择相关的其他修改(请阅读代码下方,了解更多原因)
#包括
//--1
int main()
{
//--2
恒浮闪光灯=299792;
const int startingYear=2018年;
//--3
浮动百分比增加=0;
而((增加百分比=100))
{
std::不能增加百分比;
}
//--4
int最大年份=-1;
而(最大年数<1)
{
std::cout-maxYears;
}
标准::cout
#include <iostream>
//--1
int main()
{
//--2
const float speedLight = 299792;
const int startingYear = 2018;
//--3
float percentIncrease = 0;
while ((percentIncrease <= 0) || (percentIncrease >= 100))
{
std::cout << "What percentage do rocket speeds increase by each year?" << std::endl;
std::cin >> percentIncrease;
}
//--4
int maxYears = -1;
while (maxYears < 1)
{
std::cout << "What is the maximum number of years you are willing to wait on earth before you leave? " << std::endl;
std::cin >> maxYears;
}
std::cout << "Year|\tAvg Speed|\tEarth ETA|\tYour ETA" << std::endl;
//--5
float currentSpeed = 10000;
for (int year = startingYear; year <= (maxYears + startingYear); ++year)
{
//--6
std::cout << year << "\t" << currentSpeed << std::endl;
currentSpeed = currentSpeed + (speedLight - currentSpeed) * (percentIncrease / 100);
}
//--7
system("pause");
return 0;
}