//有什么反馈直说!!!
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
void coverScreen(){
HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
COORD topLeft={0,0};
SetConsoleCursorPosition(hConsole, topLeft);
}
int main(){
double n,g,h;
cerr<<“高度(m):”;
cin>>h;
cerr<<“倍标准大气压:”;
cin>>n;
cerr<<“G(m/s):”;
cin>>g;
int yesorno;
double mi=1.0,r=6000000.0,b=1.0,ms=0.0,MAX_45=45;
cerr<<“是否开高级设置:\n 1.是 2.否\n”;
cin>>yesorno;
if(yesorno==1){
cerr<<“倍数(默认为1):”;
cin>>mi;
cerr<<“星球半径(km)(默认为6000km):”;
cin>>r;
r*=1000.0;
cerr<<“撞击地面速度衰变率(-%)(默认为-0%):”;
cin>>b;
b=1-b/100.0;
cerr<<“起始下落速度(m/s)(默认为0m/s,不可超出或等于光速):”;
cin>>ms;
if(ms>=299792458.0){
cerr<<“当前速度已超出光速!!!”;
return 0;
}
cerr<<“物体光滑程度(默认为1倍[即在重力9.8m/s,一倍大气压的速度峰值]):”;
cin>>MAX_45;
MAX_45*=45;
}
double s=ms;
double q=1.0/nMAX_45;
system(“cls”);//windows电脑
//非windows电脑的请用 system(“clean”);
for(;;){
int app=0;
double g1=g(r/(r+h)r/(r+h));
double q1=q;
if(h<10000){
for(double j=1;j<=h/10;j++){
q1=1.001;
}
}else if(h<100000){
for(double j=1;j<=h/100;j++){
q1*=1.011;
}
}else if(h<1000000){
for(double j=1;j<=h/1e3;j++){
q1*=1.12;
}
}else if(h>=1000000){
app=1;
}
if(h<=0){
double a=s;
s=0;
s-=a;
s=sb;
}
h-=s/900.0mi;
s+=g1/900.0mi(1.0-ss/299792458.0/299792458.0);
if(app==0){
s-=s/q1/90.0mi;
}
if(h<0){
h=0;
}
coverScreen();
if(h<100000.0){
cerr<<setprecision(5)<<“高度:”<<h<<"m ";
}else if(h<100000000.0){
cerr<<setprecision(4)<<“高度:”<<h/1000.0<<"km ";
}else if(h<10000000000000000.0){
cerr<<setprecision(5)<<“距离:”<<h/149600000000.0<<"AU ";
}else if(h>=10000000000000000.0){
cerr<<setprecision(5)<<“距离:”<<h/9460865568000000.0<<"ly ";
}
if(abs(s)<10000.0){
cerr<<setprecision(4)<<“当前速度:”<<abs(s)<<"m/s "<<endl;
}else if(abs(s)<2997924.58){
cerr<<setprecision(4)<<“当前速度:”<<abs(s)/1000.0<<"km/s “<<endl;
}else if(abs(s)<299792458.0){
cerr<<setprecision(3)<<“当前速度:”<<abs(s)/2997924.58<<”%C "<<endl;
}else{
if(s>0){
s=299792457;
}else{
s=-299792457;
}
cerr<<"当前速度:99.9999%C "<<endl;
}
}
}
1 个赞
格式化
就像这样
1 个赞
(帖子已被作者删除)
(帖子已被作者删除)
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
void coverScreen(){
HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
COORD topLeft={0,0};
SetConsoleCursorPosition(hConsole, topLeft);
}
int main(){
double n,g,h;
cerr<<"高度(m):";
cin>>h;
cerr<<"倍标准大气压:";
cin>>n;
cerr<<"G(m/s):";
cin>>g;
int yesorno;
double mi=1.0,r=6000000.0,b=1.0,ms=0.0,MAX_45=45;
cerr<<"是否开高级设置:\n 1.是 2.否\n";
cin>>yesorno;
if(yesorno==1){
cerr<<"倍数(默认为1):";
cin>>mi;
cerr<<"星球半径(km)(默认为6000km):";
cin>>r;
r*=1000.0;
cerr<<"撞击地面速度衰变率(-%)(默认为-0%):";
cin>>b;
b=1-b/100.0;
cerr<<"起始下落速度(m/s)(默认为0m/s,不可超出或等于光速):";
cin>>ms;
if(ms>=299792458.0){
cerr<<"当前速度已超出光速!!!";
return 0;
}
cerr<<"物体光滑程度(默认为1倍[即在重力9.8m/s,一倍大气压的速度峰值]):";
cin>>MAX_45;
MAX_45*=45;
}
double s=ms;
double q=1.0/n*MAX_45;
system("cls");//windows电脑
//非windows电脑的请用 system("clean");
for(;;){
int app=0;
double g1=g*(r/(r+h)*r/(r+h));
double q1=q;
if(h<10000){
for(double j=1;j<=h/10;j++){
q1*=1.001;
}
}else if(h<100000){
for(double j=1;j<=h/100;j++){
q1*=1.011;
}
}else if(h<1000000){
for(double j=1;j<=h/1e3;j++){
q1*=1.12;
}
}else if(h>=1000000){
app=1;
}
if(h<=0){
double a=s;
s=0;
s-=a;
s=s*b;
}
h-=s/900.0*mi;
s+=g1/900.0*mi*(1.0-s*s/299792458.0/299792458.0);
if(app==0){
s-=s/q1/90.0*mi;
}
if(h<0){
h=0;
}
coverScreen();
if(h<100000.0){
cerr<<setprecision(5)<<"高度:"<<h<<"m ";
}else if(h<100000000.0){
cerr<<setprecision(4)<<"高度:"<<h/1000.0<<"km ";
}else if(h<10000000000000000.0){
cerr<<setprecision(5)<<"距离:"<<h/149600000000.0<<"AU ";
}else if(h>=10000000000000000.0){
cerr<<setprecision(5)<<"距离:"<<h/9460865568000000.0<<"ly ";
}
if(abs(s)<10000.0){
cerr<<setprecision(4)<<"当前速度:"<<abs(s)<<"m/s "<<endl;
}else if(abs(s)<2997924.58){
cerr<<setprecision(4)<<"当前速度:"<<abs(s)/1000.0<<"km/s "<<endl;
}else if(abs(s)<299792458.0){
cerr<<setprecision(3)<<"当前速度:"<<abs(s)/2997924.58<<"%C "<<endl;
}else{
if(s>0){
s=299792457;
}else{
s=-299792457;
}
cerr<<"当前速度:99.9999%C "<<endl;
}
}
}
太鬼畜了,给你推荐个移动光标的函数
// 移动光标到指定位置,x为行,y为列
void s(int x, int y) {
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
这样输出就不用每次都清屏了