1 条题解
-
0
【例14.1】输出浮点数
解题思路
分别用 printf 的 %f、%.5f、%e、%g 格式生成四种输出。科学计数法指数按本站样例补至三位。
正确性说明
格式化函数实现定点、小数位限制、科学计数法和有效数字显示,指数补零仅调整书写不改变值。
易错点
本站样例指数为 e+001;常见 Linux printf 给 e+01,代码专门补齐指数位。
复杂度
本题输入规模固定,时间 O(1),额外空间 O(1)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); double x; cin >> x; char buf[200]; snprintf(buf, sizeof(buf), "%f", x); cout << buf << "\n"; snprintf(buf, sizeof(buf), "%.5f", x); cout << buf << "\n"; snprintf(buf, sizeof(buf), "%e", x); string s = buf; size_t p = s.find('e'); if (p != string::npos) { while (s.size() - p - 2 < 3) s.insert(p + 2, 1, '0'); } cout << s << "\n"; snprintf(buf, sizeof(buf), "%g", x); cout << buf << "\n"; return 0; }
- 1