C 语言输出菜鸟问题!!送分高分!!!在线等!!!!!!!!!!!!!!!!!!!!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/07 02:36:00
(_表示空格)
#include "stdio.h"
void main()
{
float x=67.8564,y=-789.123;
printf("%e,%10.2e",x,y);
}
问题一
书上写的输出答案是:
6.785640e+01,-7.89e+02
实际输出答案:
6.78564e+01,__-7.9e+02
我认为的两种答案:
6.78564e+001,-7.89e+002
6.78564e+01,_-7.89e+02

那个%10.2e中的2是代表最后输出2位小数还是一共2个位数?
+002和+02应该用哪种?
请分别具体解释以上几种情况?最好举点例子

e格式符:以指数形式输出实数。
%e 按规范化指数形式输出实数,系统自动给出6位小数,指数部分占5位
%m.ne 指定数据的宽度共为m列,其中有n位小数.如果数值长度小于m,则左侧补空格。
%-m.ne 与%m.ne类似,只是应在右侧补空格

比如你这个 10表示长度总共为10,2表示2位小数。

还有这个与你使用的编译器有关
TC2.0的科学计数是包括整数位在内的位数,而VC6.0则只算小数位数,这就是不同... 机制问题
TC2.0 %6.3e(%6.3E)输出为 0.00e+00
VC6.0 %6.3e(%6.3E)输出为 0.000e+000
注意:e后面的指数幂:TC只有两位而VC却是3位...

那个%10.2e
10表示整数部分占的位数
2表示小数点后面的位数,越大表示精度越高。
10.2e的话,输出为: -7.89e+002
至于后面的+002以及+02
确实是编译器的不同而不同。但是不影响结果。

书上写的 和 你得到的实际输出 是一回事。多的空格 可能是 印刷 校对的问题@

??什么啊