原题
描述
读入一个双精度浮点数,分别按输出格式“%f”,“%f”保留5位小数,“%e”和“%g”的形式输出这个整数,每次在单独一行上输出。
输入
一个双精度浮点数。
输出
输出有四行:
第一行是按“%f”输出的双精度浮点数;
第二行是按“%f”保留5位小数输出的双精度浮点数;
第三行是按“%e”输出的双精度浮点数;
第四行是按“%g”输出的双精度浮点数。
样例输入
12.3456789
样例输出
12.345679 12.34568 1.234568e+001 12.3457
来源
习题(2.5)
思路
本题应当使用printf输出。
printf是c语言的输出函数,下附说明符以及其含义。
说明符(specifier) |
对应数据类型 |
描述 |
---|---|---|
d / i |
int |
输出类型为有符号的十进制整数,i 是老式写法 |
o |
unsigned int |
输出类型为无符号八进制整数(没有前导 0) |
u |
unsigned int |
输出类型为无符号十进制整数 |
x / X |
unsigned int |
输出类型为无符号十六进制整数,x 对应的是 abcdef,X 对应的是 ABCDEF(没有前导 0x 或者 0X) |
f / lf |
double |
输出类型为十进制表示的浮点数,默认精度为6(lf 在 C99 开始加入标准,意思和 f 相同) |
e / E |
double |
输出类型为科学计数法表示的数,此处 "e" 的大小写代表在输出时用的 “e” 的大小写,默认浮点数精度为6 |
g |
double |
|
G |
double |
根据数值不同自动选择 %f 或 %E,%E 格式在指数小于-4或指数大于等于精度时用使用 |
c |
char |
|
s |
char * |
输出类型为字符串。输出字符串中的字符直至遇到字符串中的空字符(字符串以 '\0‘ 结尾,这个 '\0' 即空字符)或者已打印了由精度指定的字符数 |
p |
void * |
以16进制形式输出指针 |
% |
不转换参数 |
不进行转换,输出字符‘%’(百分号)本身 |
n |
int * |
到此字符之前为止,一共输出的字符个数,不输出文本 |
代码
#include <iostream>
using namespace std;
int main()
{
double a;
cin>>a;
printf("%f\n",a);
printf("%.5f\n",a);
printf("%e\n",a);
printf("%g\n",a);
return 0;
}
希望本博客对大家有所帮助