永发信息网

C中输出格式字符%lf的问题?

答案:6  悬赏:60  手机版
解决时间 2021-07-16 13:17

main()

{double s=1;

int i;

for(i=1;i<=100;i++)

s*=i;

printf("s=%lf\n",s);

}

在这里,%lf表示输出双精度实型。

可S不是无符号型吗?我用%u或者%ld长整型输出都是错误的啊,为什么?

最佳答案

%u 是以无符号十进制形式输出整形数


%d 是以有符号十进制形式输出整形数


你没有转换当然出错了


还有printf("s=%lf\n",s);里的“l”表示输出长整型,它只可与d、o、x、u结合使用,你的基础没打好,要多看点书才行

全部回答

你有一点概念错误。浮点型数据都带符号位,只不过正的可以不写。

“%lf”中的“l”表示“long”, “f”表示“float”。其意思是按照长浮点型格式输出变量s的值。

一个变量的值如果输出的格式不对,就有可能输出完全错误的结果。

整型与实型的存储格式不同,如果按照整型的格式解释实型数,结果是非常可笑的。这也是为什么你用%u和%ld输出的结果不正确的原因。

如果你不能完全理解上面这几句话,说明你对C语言的数据类型没有正确的理解,需要继续学习。

这里有个 隐式的类型转换的问题 。。 s*=i i是整形 s是double 类型的 系统自动 做隐式转换 相当于 s*=(double)i 所以 s 是 double类型的 %u 和 %ld 都不能输出

s明明是double型的 浮点型都是有符号的 而且浮点数和定点数的存储格式不同 所以double型是不能用%u或者%ld输出的

会失去真

TXT

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一些丝路英雄问题?、/
抛砖引玉用英语怎么表达
哪位有诸姓的或者诸葛姓氏的图腾啊?
我亲戚经一家中介介绍出国务工,是泥水工,说
朋友要去你家玩,怎么委婉拒绝?
长指甲涂指甲油好看,还是短指甲好看。
想为老公减肥,请问大家有什么好办法??急!
推荐几本英语四级的书:要专项的词汇,听力,
有什么办法可以让我每天都快乐
11月份在香港新浦考试,请问住在哪里比较方便
江南是指那些省和那些地方
成吉思汗上那领取PH
请问炫舞怎么才升级快呀?
怎样能让他看出你爱他?
y=x是函数吗
推荐资讯
芳草集 瘦身纤体按摩精油30ML 真的可以纤体减
找一部极好的电影
谁可以帮我点寻仙图标?
为什么西安的马路都种的是法国梧桐树啊?
每天晚上睡不着
如何取消QQ宠物登录?(附图)
《故乡》中年闰土的形象,与少年闰土的区别
众一ZY-D9000
广东中山横栏镇蓝河灯饰厂的具体地址
求高手写藏中间诗带 ' 冯肖璞我喜欢你&a
怎么查看QQ的历史主显账号
为什么有的人很烦
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?