C语言%.4f与%3f代表是什么意思?

#include<stdio.h>voidmain(){floatx=67.8564,y=-789.124;printf("%8.2f,%8.2f,%.4f,%.4f,%... #include<stdio.h>
void main()
{
float x=67.8564,y=-789.124;
printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n",x,y,x,y,x,y);
}

输出结果

67.86, -789.12,67.8564,-789.1240,67.856400,-789.124023

前两个没疑问,第三四个和我预想结果相同可为什么谭老的书给的答案是

还有第五个和第六个,为什么是这个输出结果,是因为%3f的3无效吗?
展开
 我来答
八哥说科技
高粉答主

2019-09-30 · 分享科技资讯,共享科技生活
八哥说科技
采纳数:117 获赞数:78635

向TA提问 私信TA
展开全部

C语言%.4f代表输出小数位为4的浮点数。%3f代表输出场宽为3的浮点数。

格式占位符(%)是在C/C++语言中格式输入函数,如scanf、printf等函数中使用。其意义就是起到格式占位的意思,表示在该位置有输入或者输出。其中,%f,%F,%e,%E,%g,%G 用来输入输出实数,可以用小数形式或指数形式输入输出。

可以在“%”和字母之间插进数字表示最大场宽。如:%9.2f表示输出场宽为9的浮点数,其中小数位为2,整数位为6。

对浮点数,若整数部分位数超过了说明的整数位宽度,将按实际整数位输出;若小数部分位数超过了说明的小数位宽度,则按说明的宽度以四舍五入输出。

扩展资料:

相关的格式占位符:

%a,%A 读入一个浮点值(仅C99有效)

%c 读入一个字符

%d 读入十进制整数

%i 读入十进制,八进制,十六进制整数

%o 读入八进制整数

%x,%X 读入十六进制整数

%s 读入一个字符串,遇空格、制表符或换行符结束。

%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。

%p 读入一个指针

%u 读入一个无符号十进制整数

%n 至此已读入值的等价字符数

%[] 扫描字符集合

%% 读%符号

参考资料来源:百度百科-格式占位符

参考资料来源:百度百科-printf()

Jxdqz
推荐于2017-11-25 · TA获得超过268个赞
知道小有建树答主
回答量:115
采纳率:100%
帮助的人:75.8万
展开全部
以%8.2f为例整数8表示宽度为8,也就是8个字符,而.2表示精度为2,也就是小数点后有2位
还有说一下,谭浩强书实在太坑,不建议学他的书
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chasedm逐梦
2014-01-20
知道答主
回答量:5
采纳率:0%
帮助的人:6595
展开全部
.代表小数点后的位数,3代表总的位数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天空之城vip3
2018-04-09
知道答主
回答量:3
采纳率:0%
帮助的人:2444
展开全部
第一个问题:第三第四个老谭的书错了,你理解没问题;

第二个问题:第五第六个是因为%3f的3表示:打印的浮点数“至少”占3个字符宽度,这里大于3个,自然就是无效咯。至于为什么小数点后6位小数,这是单精度浮点数精度决定的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Rankabc
2014-01-20 · TA获得超过3561个赞
知道大有可为答主
回答量:3705
采纳率:59%
帮助的人:1114万
展开全部
%3f 和%3.f是不同的,%3f相当于%f(3是无效的)
%3.f表示宽度为3
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式