已采纳回答 / xiedukai
这是while循环,至于答案为什么是-1,这个是y--的知识点了,当y=0时就停止循环,但--在后面,还也再减1,所以就是先赋值再减减,最后输出的是最终答案就是-1。
2015-08-23
已采纳回答 / onemoo
函数中变量前加上static,这个叫局部静态变量,这个变量在整个程序中只有一份,在多次函数调用中可以保留它的值。你可以看到,在for循环中调用了5次fn函数,但每次x的值都不一样:第一次调用时x的值是1(就是定义的值),接着值被乘以2,成为2,打印了出来。在第二次调用时,前次的2被保留下来了,所以第二次输出了4。第三次输出了4*2=8......,因为实际上每次函数存取的x都是同一份,所以值才会被保留下来。如果在fn函数定义x时没有加上static,那么每一次调用fn时x的值都是1,最后打印出来的都是2。...
2015-08-23
已采纳回答 / onemoo
前面你说的“但假如是认为a++是先取值而后运算,而a本身并未受到这个运算的影响的话”——你可以这么理解,但你后半句“可以得出“c语言入门”3-4的答案是12”——正相反,恰恰无法得出这个结论。a++表达式的值就是a当时的值,在当时a的值可以说是不受这个运算的影响的。但a的值最终还是要自增的,只不过这个自增是什么时候发生的是不确定的,那么整个表达式中前面那几个a的值该取多少呢?不确定! 你无法确定前面那几个a是不是已经自增过了,这是因为C标准没有规定操作数的求值顺序。表达式是有优先级的,但是优先运算的表达式...
2015-08-23
已采纳回答 / Perona
<...code...>这里%%改成&&<...code...><...code...>这里逗号错了,改成英文的。<...code...><...code...>这2行输出语句要倒过来,应该是条件为真,执行闰年,否则执行平年。<...code...>修改后的全代码<...code...>
2015-08-22
已采纳回答 / onemoo
num2 是整型,当然不会有小数点,它的值是2。你可以省略掉那个括号的:<...code...>赋值(初始化)要求两侧类型相同。不同的话,等号右侧的变量会自动“临时”转换为等号左侧的类型,再进行赋值,这就叫自动类型转换。所以不用手动指定类型(用括号)。浮点型转为整型一般是丢弃小数点,所以num的2.5被自动转换为整型2,再为num2初始化。故你定义的整型num2的初值为2.
2015-08-22
已采纳回答 / Perona
<...code...>这一行前面的(敲成中文的,改成英文的<...code...><...code...>这2行分号错了,改成英文的<...code...>
2015-08-22
已采纳回答 / Q__Q
首先:你的jackResult(x,y,z)只是输出一句话,那么printf("Jack运算结果是:%s\n",jackResult(x,y,z));直接替换成jackResult(x,y,z);就可以输出了,不必用print。整个程序就没有问题了!最后:因为你"Jone运算结果是:%d\n"这么写,所以jone的返回类型必然是整数类型(%d)。其余的你还有什么问题
2015-08-22