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

C语言逆序输出整数[通俗易懂]在很多编程练习中都会遇到关于数字方面的题目,其中比较常见的一种是逆序输出整数。下面我给出一个最简单的例子。#include<stdio.h>intmain(){intx;inti;intsum=0;printf("请输入一个整数:");scanf("%d",&x);while(x!=0)…

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

【完美版】

更新(2022/3/12):

直接上代码,优化后:

#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,则可以将上面代码变为下面这种:

#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:

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

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

#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; 
}

最主要的就是下面这段:

    while(x!=0) 
    { 
        sum=sum*10+x%10; 
        x/=10;
    } 

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


更新(2021/4/8):

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

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

#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.net/163834.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 苹果跳过id教程_苹果手机怎么绕过ID

    苹果跳过id教程_苹果手机怎么绕过ID如果您是非法渠道获得的手机请关闭本网页。常见问题汇总:iPhone5s,iPhone6、6plus,iPhoneSE,6S,iPhone6SPiPhoneSE,iPhone7,iPhone7P,iPhone8/iPhone8P,iPhoneX。iPadMini2,iPadMini3,iPadMini4,iPadAir,iPadPro(12.9…

    2022年9月22日
    1
  • 华三路由交换配置命令_H3C路由器常用基本配置命令「建议收藏」

    华三路由交换配置命令_H3C路由器常用基本配置命令「建议收藏」H3C路由器常用基本配置命令[Quidway]sysnamerouter_name命名路由器(或交换机)[Quidway]delete删除FlashROM中的配置[Quidway]save将配置写入FlashROM[Quidway]interfaceserial0进入接口配置模式[Quidway]quit退出接口模式到系统视图[Quidway]shutdown/undoshutdown…

    2022年10月17日
    1
  • redis雪崩原因_什么是redis雪崩

    redis雪崩原因_什么是redis雪崩1、每天和技术水友,提三个问题。不喜勿喷。redis雪崩效应:1、redis缓存的时间同时失效或者无效的key,落地到db层,导致db层压力过大,引发一系列的功能不可用解决措施:以下穷逼公司解决方案:1、redis设置时间加入随机时间2、数据量少考虑加入本地缓存3、限流(TODO:用户体验不好)4、互斥锁(TODO:用的不好,系统分分钟down掉)5、定时任务(TODO:小心点,别乱塞)此乃富有公司最终解决方案6、加服务器(最终解决方案,一台不行加10台)…

    2022年9月14日
    1
  • Vue新手入门指南(易懂)

    Vue新手入门指南(易懂)Vue.js学习心得前言对于一名初入编程的新手来说,JavaScript的语法偏向复杂,选择Vue库可以说是一个较为不错的体验。在很多方面,Vue简化了JavaScrip语法,并且实现数据与视图的双向绑定,达到响应式页面的目的。1.Vue实例和模板语法<body> <divid=”app”> <p>{{message}}</p> </div><script> newVue({ el:’#app’

    2022年5月4日
    43
  • Jenkins(5)生成allure报告「建议收藏」

    Jenkins(5)生成allure报告「建议收藏」前言jenkins集成了allure插件,安装插件后运行pytest+allure的脚本即可在jenkins上查看allure报告了。allure安装在运行代码的服务器本机,我这里是用的dock

    2022年7月30日
    8
  • qtablewidget设置高度_qtabwidget设置tab标题宽度

    qtablewidget设置高度_qtabwidget设置tab标题宽度setStyleSheet(“QTabWidget::pane{border-width:1px;border-color:rgb(48,104,151);\border-style:outset;background-color:rgb(132,171,208);\background:transparent;}\QTabWidget::tab-bar{border-width:…

    2022年9月23日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号