c语言精通的朋友,帮一下忙吧!!多谢

来源:百度知道 编辑:UC知道 时间:2024/06/20 06:31:36
#include <stdio.h>
main()
{
float f=123.456;
printf("%f,%8f,%8.1f,%.2f,%.2e\n",f,f,f,f,f);
}
输出结果:
123.456001,123.456001, 123.5,123.46,1.23e+002
我不明白输出结果为什么是以上这些数.哪位智者能帮我细解一下.感谢!

main()
{
int a=15;
float b=123.1234567;
double c=12345678.1234567;
char d='p';
printf("a=%d,%5d,%o,%x\n",a,a,a,a);
printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);
printf("c=%lf,%f,%8.4lf\n",c,c,c);
printf("d=%c,%8c\n",d,d);
}

本例第七行中以四种格式输出整型变量a的值,其中“%5d ”要求输出宽度为5,而a值为15只有两位故补三个空格。 第八行中以四种格式输出实型量b的值。其中“%f”和“%lf ”格式的输出相同,说明“l”符对“f”类型无影响。“%5.4lf”指定输出宽度为5,精度为4,由于实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去。第九行输出双精度实数,“%8.4lf ”由于指定精度为4位故截去了超过4位的部分。第十行输出字符量d,其中“%8c ”指定输出宽度为8故在输出字符p之前补加7个空格。

这个可能是你的C版本是老的,也可能是电脑故障