已采纳回答 / 逆时针行走
printf的%f说明符的确既可以输出float型又可以输出double型。根据“默认参数提升”规则(在printf这样的函数的可变参数列表中,不论作用域内有没有原型,都适用这一规则)float型会被提升为double型。因此printf()只会看到双精度数。
2015-02-11
已采纳回答 / Fiona0126
首先可以方便后续维护,正如楼上所言,修改时更加方便。也可以提高编码速度。比如你要写一个unsigned char的,你可以#define uchar unsigned char.之后可以用uchar代替,你也可以用#define来定义一些小的函数什么的。而且define是在预处理时就展开的,所以会可以提高运行效率。不过还是不建议都用define。代码安全可维护性好才是重点。。
2015-02-10
已采纳回答 / onemoo
你在第一个printf中是用强制类型转换的方式将num转换成int型传入,不过准确的说,在第二个printf中并不存在类型转换。因为printf中%d代表它希望相应的参数类型为int,如果你传入的不是int型,一般来说编译器会给出警告的,通常仍可编译通过,但是在运行时printf函数仍然把那个参数当作int型来读取和打印。一般计算机中int和double的存储方式是不一样的,所以造成打印出很“奇怪”的数。而那个num2,你用了一个double类型的num来初始化,所以编译器会先把num转换成int型来给n...
2015-02-07
已采纳回答 / 火Rain
原则上只要头文件中的“#include”与“<stdio.h>”这俩个你不将其中任何一个拆分或者把俩者换行,俩者间你空多少个空格都是可行的!作者也可以自己在编辑器里面尝试一下,看下是否如此!
2015-02-07
已采纳回答 / Rober_Lin
使用循环计算1-2+3-4+5-6+…-100的值sum记录钱n个值的和,偶数前的符号为负,所以用了一个变量flag来实现正负号的变换,当i为单数时flag为正,当i为偶数时,flag*-1变为负数,再乘-1又为正数,当循环执行时,判断循环条件,然后执行求和sun,之后实现flag的变号,和i的自增。直到循环条件不满足
2015-02-05