下图为我想要达到的效果

下图为不理解的:
1.为什么编译结果后面多了个零?
2.跟我标红的那个printf有什么关系?
3.为什么最后不要有个printf来输出x?如果没有printf的话,前面是在哪一步输出的,最后我想要的1 2的结果?(ps.我在调试的时候,他最后面一直在do while循环里面循环,最后出来,do while里并没有在哪里显示输出了呀?)

下图为我想要达到的效果


把那个 do ... while(d > 0)
写成while (d > 0) ...
否则d=0也有printf,就是多了一个0的原因