倒叙输出一个整数

给出一个正整数,要求倒着输出这个整数。例如输入123,则输出为321。

对于这样的题目,就需要取余和除法。

#include
int main(){int x;int a;int b=0;scanf("%d",&x);while(x>0){a=x%10; //取余得到最后一位数printf("%d",a); //打印出那个数//b=b*10+a;x/=10; }return 0;
} 

拿123来举例,第一次循环,123%10=3,a=3,输出3,123/10=12。第二次循环,12%10=2,a=2,输出2,12/10=1。第三次循环,1%10=1,a=1,输出1,1/10=0,循环结束。最终结果输出32。

为什么选择每循环一次就打印一个数字而不是等循环结束后就直接打印b呢?

若选择打印b,输入123确实可以输出321,但如果输入是800,则输出的是8。原因在于初始化b为0;在第一次循环时,a=0,b=0。第二次循环时,a=0,b=b+a=0+0=0。第三次循环时,a=8,b=b+a=0+8=8,最终结果会输出8。所以最好是得到一个数就输出一个数。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部