2071

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2071

这道题是简单题,我尝试用了C++做这道题,主要还是了解了一下C++的输出格式(使用流操作算子)怎么用。C++ 中常用的输出流操纵算子都是在头文件 iomanip 中定义的;要使用这些流操纵算子,必须包含该头文件。百度查了之后学到了几个比较常用的:

fixed 以普通小数形式输出浮点数;

scientific 以科学计数法形式输出浮点数;

setprecision(n)设置输出浮点数的精度为 n。在使用非 fixed 且非 scientific 方式输出的情况下,n 即为有效数字最多的位数,如果有效数字位数超过 n,则小数部分四舍五人,或自动变为科学计 数法输出并保留一共 n 位有效数字。在使用 fixed 方式和 scientific 方式输出的情况下,n 是小数点后面应保留的位数。

❤❤在笔记最下方的代码有这些使用流操作算子的使用例子❤❤



代码如下:

#include<iostream>

#include<iomanip>

using namespace std;

int main()

{

int t, n;

double max, arr[100];

cin>>t;

while (t--)

{

cin>>n;

for(int i = 0; i<n; i++)

cin>>arr[i];

max = arr[0];

for (int i = 1; i<n; i++)

if (max<arr[i])

max = arr[i];

cout<<fixed<<setprecision(2)<<max<<endl;

}

return 0;

}



#include<iostream>

#include<iomanip>

using namespace std;

int main()

{

int n=141;

//1) 分别以十六进制、十进制、八进制先后输出 n

cout<<"1)"<<hex<<n<<" "<<dec<<n<<" "<<oct<<n<<endl;

double x=1234567.89,y=12.34567;

//2)保留5位有效数字

cout<<"2)"<<setprecision(5)<<x<<" "<<y<<" "<<endl;

//3)保留小数点后面5位

cout<<"3)"<<fixed<<setprecision(5)<<x<<" "<<y<<endl;

//4)科学计数法输出,且保留小数点后面5位

cout<<"4)"<<scientific<<setprecision(5)<<x<<" "<<y<<endl;

//5)非负数显示正号,输出宽度为12字符,宽度不足则用 * 填补

cout<<"5)"<<showpos<<fixed<<setw(12)<<setfill('*')<<12.1<<endl;

//6)非负数不显示正号,输出宽度为12字符,宽度不足则右边用填充字符填充

cout<<"6)"<<noshowpos<<setw(12)<<left<<12.1<<endl;

//7)输出宽度为 12 字符,宽度不足则左边用填充字符填充

cout<<"7)"<<setw(12)<<right<<12.1<<endl;

//8)宽度不足时,负号和数值分列左右,中间用填充字符填充

cout<<"8)"<<setw(12)<<internal<<-12.1<<endl;

cout<<"9)"<<12.1<<endl;

return 0;

}

程序的输出结果是:

1)8d 141 215

2)1.2346e+06 12.346

3)1234567.89000 12.34567

4)1.23457e+06 1.23457e+01

5)***+12.10000

6)12.10000****

7)****12.10000

8)-***12.10000

9)12.10000

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容