去对面公司笔试,要求输出16位小数,忘记怎么设置输出精度了,那个题就0%了,心塞。
代码:
#include <iostream>
using namespace std;
int main() {
int b_arr[]={1,2,3,4};
cout<<b_arr<<endl;;//仅仅打印数组的起始地址,只有字符数组才能这样输出。
string a_arr[]={"afsf","asdfad"};
cout<<a_arr<<endl;
char str2[4] = {'b','o','x'};//不加上4,会输出box烫烫烫特 后面带着其它的,因为没有加上/0代表结束
cout<<str2<<endl;
float a=3.1311111111111111111111111111111111111111111111111111111111111111;
double b=3.13111111111111111111111111111111111111111111111111111111111111111;
long double c=3.13111111111111111111111111111111111111111111111111111111111111111;
cout<<setprecision(50)<<a<<endl;//cout默认输出6位精度,用s那个函数自定义精度,但是输出结果中,float只有前面7位正确,double只有15位正确。
cout<<a<<endl;//不会改变回来
cout<<b<<endl;
cout<<c<<endl;
cout<<"sizeof(shortint)="<<sizeof(short int)<<endl;
cout<<"sizeof(int)="<<sizeof(int)<<endl;
cout<<"sizeof(longint)="<<sizeof(long int)<<endl;
int a_jinzhi=-123;
cout<<hex<<a_jinzhi<<endl;
cout<<a_jinzhi<<endl;//不会改变回来,依然是十六进制。
cout<<10;
return 0;
}
输出:
0x7ffd9a740d70
0x7ffd9a740db0
box
3.13111114501953125
3.13111114501953125
3.1311111111111111782179250440094619989395141601562
3.1311111111111111782179250440094619989395141601562
sizeof(shortint)=2
sizeof(int)=4
sizeof(longint)=8
ffffff85
ffffff85
a