//楼主的确在输入参数那里出错了,本来g=%15.12f 是要格式化输出g的值,你写成要输出q的值了,怪不得会输出0,
//不过没关系啦,下次注意点就好了……人总是在错误中长大的,吸取教训哈
#include<stdio.h>
void main()
{
double f,g;
//double精确度是15位数
long m,n;
unsigned int p,q;
f=3175.890232;g=0.123456789;
m=50000;n=-60000;
p=32768;q=40000;
printf("f=%15.6f,g=%15.12f\nm=%d,n=%ld\np=%u,q=%u\n",f,
g,m,n,p,q);
}
----------------------------------------------------------------------
这涉及到格式化输入输出的知识,简要介绍下:
%d -- 表示十进制的整数
%f -- 表示十进制形式的浮点数
%ld --表示long int的数
%u -- 表示无符号整数
%m.px--表示指定字符显示的样式。
m表示最小字段宽度,m指定了要显示的最少字符数量,如果要显示的数值所需字符少于m,那么值在字段内是右对齐(在值的面前放置额外的空格)。
如:%5d,格式化输出123,那么它会输出:&&123(&代表空格)
如果多于了,就自动扩展为所需的尺寸。
如:%5d, 格式化输出123456,那么它会原样输出123456,不会丢失数字。
---------------------------------------------------------------------
f=%15.6f,给15个占位空间你,.6表示小数出现的位数(精度)。&&&&3175.890232(15个占位空间)
g=0.123456789 输出的是 g = &0.123456789000 --小数位不够,就用0填,填够12位。
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
--------------------------------------------------------------------
说了那么多,只是希望对你有所帮助……
[
本帖最后由 自强 于 2012-10-5 13:04 编辑 ]