#include <iostream>
#include <cstdio>
using namespace std;
int main() {
int a;
long b;
char z;
float c;
double d;
cin>>a;
cin>>b;
cin>>z;
cin>>c;
cin>>d;
cout<<a<<endl;
cout<<b<<endl;
cout<<z<<endl;
cout<<c<<endl;
cout<<d<<endl;
// Complete the code.
return 0;
}
在上面的程序中,我认为我已经做了一切正确的事情,但是当我提供这样的输入时,例如:
368252310 27547295356575738 c 46866.250 -247884.497885257
输出应该显示相同的数字,但它没有这样做。它显示了一些其他数字 所以,伙计们,请帮助我,我是编程新手。
答案 0 :(得分:1)
你得到这样的输出:
368252310
27547295356575738
c
46866.2
-247884
您需要进行2次更改才能获得相同(但不完全相同)的输出。
首先,将'\n'
替换为空格。
其次,设置cout
的精度。
cout<<a<<' ';
cout<<b<<' ';
cout<<z<<' ';
cout.precision(16);
cout<<c<<' ';
cout.precision(16);
cout<<d<<endl;
你会得到这样的输出:
368252310 27547295356575738 c 46866.25 -247884.497885257
这是因为默认精度低于您的输入。
但是存在一些给出不同输出的数字,因为double
的精度是有限的,并且浮动点之后的最后零默认不显示(并且不保存)。
如果你需要得到EXACT相同的输出,那么你应该保存字符串,而不是整数或浮点值。
您可以尝试输出选项&#34;固定&#34;:cout << fixed << c << ' ';