是有个方法,就是把结果换算成十进制数字,你可以用你的结果除以10然后获得一个余数,这个余数就是你原来结果的个位数,然后把得到的商继续除以10,得到余数是原来结果的十位数,然后依次继续得到百位数以及后面,直到商为0 ,然后把余数倒着输出,这个方法你高中或者初中应该学过,当然余数先加30h,把他们变成对应十进制的符号的ASCII码才能显示在屏幕上,就可以了,有点绕,不知道懂没,大体步骤就是这样。如果数字太大,就会出现除法溢出,就需要另一种解决除法溢出的方法,但是对于你的1275不会出现除法溢出,如果你要处理更大的数字,就要解决除法溢出的问题
如果for(c1='0',c2='9';c1<c2;c1++,c2 - -);后面的;去掉:
09 //调整c1和c2,这时候判断1<8成立
18 //调整c1和c2,这时候判断2<7成立
27 //调整c1和c2,这时候判断3<6成立
36 //调整c1和c2,这时候判断4<5成立
45 //调整c1和c2,这时候判断5<4不成立成立,打印一个回车
最终屏幕输出为:
0918273645
如果for(c1='0',c2='9';c1<c2;c1++,c2 - -);的;不去掉,那么printf语句会等for循环结束才打印,
这个时候经过如上所述的调整,c1和c2分别变为了5和4,
所以屏幕上会打印出:
54
运行结果是3 2 -1
&& 运算符的判断逻辑是如果前面的为真,那么需要判断后面的,同为真,才返回真。
如果前面的为假,那么后面的运算不需要执行,直接返回假。
++i 的运算逻辑是先执行i=i+1的 *** 作,然后对i之后的值进行判断
i++的运算逻辑是先进行值i的判断,然后执行值的增加i=i+1。
因此,运行的逻辑是这样的:
z=3开始进行判断是否大于0,如果是进行自减变为2,然后判断x+1后的值是否小于5,如果是的话,那么y进行自减1。
因此第一遍循环之后的值z , x , y 分别是
2,1,4
第二遍循环之后的值z,x,y分别是
1,2,3
第三遍循环之后的值z,x,y分别是
0,3,2
第四遍循环的时候,z--小于0为假,不进行++x的运算,因此z,x,y的值为
-1, 3, 2
以上就是关于为什么这个程序运算出来的结果是54 6呢,我怎么算都算不对啊全部的内容,包括:为什么这个程序运算出来的结果是54 6呢,我怎么算都算不对啊、求教C++程序的运行结果以及计算过程、【汇编】如何调用显示程序显示运算结果等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)