求第二小题细解,本人理解能力很差,上课没听懂,但是很想学习,
2个回答
展开全部
#include<stdio.h>
int main(){
//定义一个浮点数f并且赋值为1.234567
float f = 1.234567;
//%f:按浮点数输出默认输出精确到小数点后6位
//%10f:"10"代表输出这个数占10个位宽,"f"代表按浮点数格式输出
// %10.4f:"10"代表输出这个数占10个位宽,".4" 代表输出的这个浮点数精确到小数点后4位 ,"f"代表按浮点数格式输出
printf("%f,%10f,%10.4f\n",f,f,f);
// %.0f:".0" 代表输出的这个浮点数精确到小数点后0位也就是不显示小数部分 ,"f"代表按浮点数格式输出
// %.4f:".4" 代表输出的这个浮点数精确到小数点后4位 ,"f"代表按浮点数格式输出
//%-5.2f:"-5"代表输出的这个浮点数占5个位宽,"-"代表左对齐输出,".2"代表精确到小数点后2位
printf("%.0f,%.4f,%-5.2f\n",f,f,f);
return 0;
}
更多追问追答
追问
为什么得到这个运行结果,还是不太理解
可以详细点吗?
展开全部
%f是要求输出实数,%和f之间允许添加一定的格式控制符。
这个题里面考的是宽度控制符。
宽度控制符有两种,第一种是整数(此处代号M,下同),第二种是.整数(此处整数代号N,下同。注意整数前面有小数点)。
具体例子:
第一种:%10f(%和f之间有整数,这个整数是多少你说了算本例为10)
第二种:%.4f(%和f之间有.和整数,同样这个整数是多少你说了算,本例为4,整数为4。但别忘了小数点的存在。)
还有第一和第二结合的例子,那就是%10.4f了
--------------------------------------------------
M数据输出总宽度,也就是输出这个数,一共需要在屏幕上输出多少个字符。注意,总的宽度,包含整数部分、小数部分,还有小数点。
N专门指小数位宽度。注意,这个专门指小数位宽度,不包含整数部分和小数点。
-------------------------------------------------------
M如果不予指定,则按实际所需宽度为准,实际需要多少,就占多少字符宽度。如果指定的比实际所需更多,那么数据右对齐,左边补空格补足指定位数。如果指定的不够,则编译器不予采纳,以实际所需为准。如果需要右边补空格左对齐,那么前面加减号-,也就是-M
具体例子,看这个题答案就行了
N如果不予指定,默认四舍五入保留六位小数。如果指定,则完全以指定的为准。如果N为0,代表四舍五入保留到整数部分,同时小数点都不输出了。
编译器先确认N指定的位数,确认后才会去对比M指定的总宽度
--------------------------------------------------------
这样:
%f对应的输出内容是1.234567,因为没指定宽度,先确认输出6位小数(没指定N),然后整数位宽度1,再加小数点,总宽度实际所需8位,而且没指定M,那么以实际所需的8位宽度为准
%f后面的逗号原样输出
%10f,接上述内容,小数位6位确认后,再加上整数位和小数点,一共所需8位,指定总宽度10位,还差2位。所以输出2个空格之后在输出1.234567,这样补足10位宽度
%10f后面的逗号原样输出
%10.4f,小数位4位确认后,小数位对四舍五入变为2346,再加上整数位和小数点,一共所需6位,指定总宽度10位,还差4位。所以输出4个空格之后在输出1.2346,这样补足10位宽度
%10.4f后面的回车原样输出
第一条printf结束
////////////////////////////////////////
%.0f,指定舍弃小数位和小数点,四舍五入保留整数,所以1.234567对应的值为1,同时没指定M,总宽度以实际所需的1位宽度为准,输出1.
%.0f后面的逗号原样输出
%.4f,类似%10.4f,只不过不需要添加空格了。
%.4f后面的逗号原样输出
%-5.2f,类似前面的讲解。要求小数位2位,四舍五入后得到23,整数位位1,再加小数点,实际所需宽度是4位。指定总宽度位5,那么需要补一个空格,但是有个减号,要求末尾补空格,那就是1.23再加一个空格
末尾回车原样输出
*************************************************
完整的输出内容格式如下:
1.234567, 1.234567, 1.2346
1,1.2346,1.23
(有多少空格自己拿鼠标数)
这个题里面考的是宽度控制符。
宽度控制符有两种,第一种是整数(此处代号M,下同),第二种是.整数(此处整数代号N,下同。注意整数前面有小数点)。
具体例子:
第一种:%10f(%和f之间有整数,这个整数是多少你说了算本例为10)
第二种:%.4f(%和f之间有.和整数,同样这个整数是多少你说了算,本例为4,整数为4。但别忘了小数点的存在。)
还有第一和第二结合的例子,那就是%10.4f了
--------------------------------------------------
M数据输出总宽度,也就是输出这个数,一共需要在屏幕上输出多少个字符。注意,总的宽度,包含整数部分、小数部分,还有小数点。
N专门指小数位宽度。注意,这个专门指小数位宽度,不包含整数部分和小数点。
-------------------------------------------------------
M如果不予指定,则按实际所需宽度为准,实际需要多少,就占多少字符宽度。如果指定的比实际所需更多,那么数据右对齐,左边补空格补足指定位数。如果指定的不够,则编译器不予采纳,以实际所需为准。如果需要右边补空格左对齐,那么前面加减号-,也就是-M
具体例子,看这个题答案就行了
N如果不予指定,默认四舍五入保留六位小数。如果指定,则完全以指定的为准。如果N为0,代表四舍五入保留到整数部分,同时小数点都不输出了。
编译器先确认N指定的位数,确认后才会去对比M指定的总宽度
--------------------------------------------------------
这样:
%f对应的输出内容是1.234567,因为没指定宽度,先确认输出6位小数(没指定N),然后整数位宽度1,再加小数点,总宽度实际所需8位,而且没指定M,那么以实际所需的8位宽度为准
%f后面的逗号原样输出
%10f,接上述内容,小数位6位确认后,再加上整数位和小数点,一共所需8位,指定总宽度10位,还差2位。所以输出2个空格之后在输出1.234567,这样补足10位宽度
%10f后面的逗号原样输出
%10.4f,小数位4位确认后,小数位对四舍五入变为2346,再加上整数位和小数点,一共所需6位,指定总宽度10位,还差4位。所以输出4个空格之后在输出1.2346,这样补足10位宽度
%10.4f后面的回车原样输出
第一条printf结束
////////////////////////////////////////
%.0f,指定舍弃小数位和小数点,四舍五入保留整数,所以1.234567对应的值为1,同时没指定M,总宽度以实际所需的1位宽度为准,输出1.
%.0f后面的逗号原样输出
%.4f,类似%10.4f,只不过不需要添加空格了。
%.4f后面的逗号原样输出
%-5.2f,类似前面的讲解。要求小数位2位,四舍五入后得到23,整数位位1,再加小数点,实际所需宽度是4位。指定总宽度位5,那么需要补一个空格,但是有个减号,要求末尾补空格,那就是1.23再加一个空格
末尾回车原样输出
*************************************************
完整的输出内容格式如下:
1.234567, 1.234567, 1.2346
1,1.2346,1.23
(有多少空格自己拿鼠标数)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询