C语言问题:i=c&&f

main()
{
float c,f;
int i;
c=3.0;
f=(6*c)/5+32;
i=c&&f;
printf("f=%-8.3f,",f);
printf("i=%3.2d,",i);
}

①、i=c&&f是什么意思?
②、printf("f=%-8.3f,",f);这句话中,%-8.3f代表什么意思?我只知道%f代表输出float型。
③、输出答案是什么?请告诉我详细点的步骤。

1)这里是逻辑与,即i的取值根据这个逻辑判断来定,只有两种,0和1,当判断为真值就为1,判断为假值就为0;
2)这个%-8.3f表示:8的意思是,小数点前的整数部分最少有8位,超过可以,但是不能少于8位,“-”表示右对齐。3的意思是,小数点后的小数部分最少有3位,超过可以,但是不能少于3位.
3)
main()
{
float c,f;
int i;
c=3.0;
f=(6*c)/5+32;//f值为35.6
i=c&&f;//i值为1
printf("f=%-8.3f,",f);//f值为00000035.600
printf("i=%3.2d,",i);//i值为001.00
}追问

右对齐是什么意思?

追答

这里是printf()函数的一种输出方式,C里分左对齐和右对齐,没有居中对齐,在这里表示右对齐。

追问

有什么作用呢?

追答

这个只是这个函数的输出方式,你将这个“-”去掉再运行试试看是什么效果,自己观察下。

追问

WIN7不兼容啊T.T

追答

你装的visual studio还是VC++,VC++在win7上用起来的确不好使,网上有好多帖子关于打上补丁可以用的,你试试看。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-02-07
①i=c&&f——&&是逻辑与,如果c不为0,且f也不为0,则i=1。
②%-8.3f——占宽8字符、小数点后保留3位、左对齐输出一个浮点数。
③输出结果是:f=35.600 ,i= 01,——注意35.600后有两个空格、01前有一个空格。追问

前面的-号是什么意思?

如果i=1,那么%8.3f是不是输出就是1.000后面跟着3个空格?意思是小数点也算一个字符?

第2个回答  2015-02-07
①&&即为逻辑与,i = 3 && 35.6 由于i是int,应该赋值为35吧(不十分确定)

②%-8.3f代表整数部分保留八位,小数部分保留3位,‘-’表示左对齐

③%3.2d表示输出宽度为3,小数部分为2位

所以输出是00000035.6006.00

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网