前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言逆序输出整数[通俗易懂]

C语言逆序输出整数[通俗易懂]

作者头像
全栈程序员站长
发布2022-09-15 10:59:27
4.3K0
发布2022-09-15 10:59:27
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

【完美版】

更新(2022/3/12):

直接上代码,优化后:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int x;
    int result = 0;
    printf("请输入一个整数:");
    scanf("%d",&x); 
    while(x != 0) 
    { 
        result = result*10 + x%10; 
        x = x/10;
    } 
    printf("%d",result);

    printf("\n");  //换行
    return 0; 
}

测试的结果: 输入:501 , 输出:105 输入:521 , 输出:125 输入:025 , 输出:52 //注意,我们说的整数025其实就是25,所以逆序输出之后是52 输入:520 , 输出:25

如果想要逆序后开头的 0 也显示,比如输入500,输出005,则可以将上面代码变为下面这种:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int x;
    int result = 0;
    printf("请输入一个整数:");
    scanf("%d",&x); 
    while(x != 0) 
    { 
        result = result*10 + x%10; 
        x = x/10;

        //如果上面得到的result是0,就立即把这个0打印出来;否则,就什么也不做,继续循环
        if(result == 0)    
        {
            printf("%d",result);
        }
    } 
    printf("%d",result);

    printf("\n");  //换行
    return 0; 
}

测试的结果: 输入:501 , 输出:105 输入:521 , 输出:125 输入:025 , 输出:52 //注意,我们说的整数025其实就是25,所以逆序输出之后是52 输入:520 , 输出:025 输入:500 , 输出:005

综上。

以下是之前写的,在评论区里面很多同学说不够完善,不过,也可以看一遍我优化的过程。


初次写于2018-12-15:

在很多编程练习中都会遇到关于数字方面的题目,其中比较常见的一种是逆序输出整数。

下面我给出一个最简单的例子。

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int x;
    int i;      //这里声明的i变量我没有用,本来是想用它计算有多少位数
    int sum=0;
    printf("请输入一个整数:");
    scanf("%d",&x); 
    while(x!=0) 
    { 
        sum=sum*10+x%10; 
        x/=10;
    } 
    printf("%d",sum);
    printf("\n");  //换行
    return 0; 
}

最主要的就是下面这段:

代码语言:javascript
复制
    while(x!=0) 
    { 
        sum=sum*10+x%10; 
        x/=10;
    } 

其中 sum = sum*10+x%10;这个公式大家可以自己推算一遍。(自己找几个数,在草稿纸上算一算,然后就会明白了)


更新(2021/4/8):

由于部分同学评论说输入的整数后面带0的话,逆序后不会显示0,比如,输入300,逆序后只输出3,而不是003

所以我又重新更新了一份代码,如下:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int x;
    int sum=0;
    printf("请输入一个整数:");
    scanf("%d",&x); 
    while(x!=0) 
    { 
        sum = sum*10 + x%10; 
        printf("%d",sum);   //其实就是把打印语句放到这里就OK了
        x /= 10;
    } 

    printf("\n");
    return 0; 
}

这个程序就可以显示后面带0的数字了,比如300,逆序后输出是003

觉得有用的话点个赞哈,谢谢支持。如果想看更多其它的也可以关注我哈,一起学习交流。

以后我会把其它的几种算法也发出来。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163834.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档