C语言数字反转,怎么循环的,能给出每一步的结果吗

C语言数字反转,怎么循环的,能给出每一步的结果吗#include<stdio.h>intmain(void){inta,b=0;scanf("%d",&a);while(... C语言数字反转,怎么循环的,能给出每一步的结果吗#include <stdio.h>
int main(void)
{
int a, b = 0;
scanf("%d", &a);
while (a)
{
b = b * 10 + a % 10;
a = a / 10;
}
printf("%d", b);
}
展开
 我来答
胡学酥
2017-11-02 · TA获得超过246个赞
知道小有建树答主
回答量:109
采纳率:83%
帮助的人:58.8万
展开全部

要先理解方法,待翻转的数字都是整数

方法有很多种的,字符串,栈,队列等等都可以

这里采用的是最朴实的计算的方法

假设待翻转的数字是123456

那我们的目标数字是654321

怎么构造654321这个整型数字呢

正常思维应该是从两端开始考虑吧, 如果从1开始构造

我们要从123456这个数字中获取1

是不是很麻烦?

要是从6开始呢

直接除以10取余数, 也就是用123456 % 10 得到的不就是6么

然后是5 显然我们需要把6去掉  得到 12345

然后 12345 % 10 得到了5

依次类推啊

然后是构造654321   最开始是6 怎么把5加上去呢

6*10 +5 

那如何开始循环呢?

考虑初始值是0    0*任何数都是0   然后加上初始数字就开始了啊

考虑到题主可能是初学者,   注意几个点 

  1. While(a) 只要a大于0  都为真 

  2. “ / ”得到的是最大整数商,余数部分不考虑

  3. “ % ”得到的仅仅是余数

    感受C语言的魅力吧

cbk808
2017-11-02 · TA获得超过383个赞
知道小有建树答主
回答量:479
采纳率:70%
帮助的人:283万
展开全部
int a, b=0,c;

while (a!=0){
c = a%10;
b=b*10+c;
a/=10;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式