题目:给出一个整数,要求:
1、求出它是几位数;
2、分别输出每一位数字;
3、按逆序输出每一位数字;

# include <stdio.h>
/*对于求位数小编写了三个函数,最后我们根据测试用例对他们的结果进行比较。
要求一个数的位数,采用逐位丢弃数字的方法,丢弃数字的个数即为数字的位数。用数字n整除10,整数除整数还是整数,这样就丢弃了个位数字,位数+1,然后逐位采用此方法丢弃个位数字直至该数为0。*/
int Num(int n)           
{
     int count=0;          //count表示该数的位数
     while(n!=0)           //while语句
    {
       count++;
       n/=10;
    }
    return count;
}
int Num1(int n)
{
    int count;
    for(count=0;n!=0;count++)          //for语句
   {
         n/=10;
   }
   return count;
   }
int Num2(int n)
{
   int count=0;
   do                                     //do-while语句
  {
       count++;
       n/=10;
  }while(n!=0);
  return count;
}
因为按逆序输出数字较为简单所以我们先完成第3小题
按逆序输出的各位数字,只能从个位数字开始打印,首先对该数取余10,打印的余数即为个位数字,再逐位整除10丢掉个位数字。循环进行直至该数为0则结束。
void PrintNixu(int n)
{
     if(n < 0)                        //对于负数,首先打印它的符号
     {
        printf("-");
        n = -n;
      }
    do
    {
      printf("%d",n%10);
      n/=10;
    }while(n!=0);
    printf("\n");
}
/*按顺序输出的各位数字,就要从最高位数字开始打印,我们必须调用之前求位数的子函数Num,得到它的返回值count。然后for循环语句得到n每次需要整除的除数b,首先用n整除b,打印的数即为最高位数字,再逐位整取余,循环进行直至该数为0则结束。*/
void PrintShunxu(int n)
{
    int a=Num2(n);
    int b=1;
    for(int i=1;i<a;i++)
    {
      b*=10;
     }
    do
     {
          printf("%d",n/b);
          n%=b;
          b/=10;
       }while(n!=0);
          printf("\n");
}
int main()
{
       printf("位数为%d\n",Num(0));
       printf("位数为%d\n",Num(123456));
       printf("位数为%d\n",Num1(0));
       printf("位数为%d\n",Num1(1010101010101));
       printf("位数为%d\n",Num2(0));
       printf("位数为%d\n",Num2(789456321));
/*根据这几组测试用例可以看出,for循环和while循坏几乎没有差别,它们均存在一个bug,就是当n=0的时候,位数为0,使用do-while语句则不会出现这个问题。*/
      PrintNixu(-123);
      PrintNixu(12345678);
      PrintShunxu(123456);
      return 0;
}
好啦,这个题就到此结束了,多练习!多练习!多练习!
加油!自己以及各位码农!

老师讲,这是个hin重要的C语言习题相关推荐

  1. 打印循环换行_科学向日葵在线课堂 ——张老师讲Python 第八课 周而复始为循环2...

    点击蓝字关注我们 张老师讲编程--和爸爸妈妈一起学Python Python 的编辑器有很多,例如 PyCharm.Spyder.Notepad++等等,大家根据需要选择一个就好,初期程序代码量不大, ...

  2. 趣图:老师讲算法 vs 油管三哥讲算法

    老师讲算法 vs 油管三哥讲算法 ↓↓↓ 我们微博分享上图后,有童鞋在评论推荐了一张以前发过的趣图: END #接力技术,链接价值#精彩推荐1. 史海峰:万字长文剖析技术人如何成长2. PerfMa& ...

  3. IBM ITS中国区总经理鞠立老师讲女性的职业规划与发展

    现在闭上眼睛我已经无法准确地回忆起鞠立老师的面容了,但是她身上散发出来的那种干练果断的气度仍能让我振奋.是的,我想成为鞠老师这样的人,我要成为这样的女强人. 鞠老师讲的题目是<女性职业的规划与发 ...

  4. 李永乐老师讲一个量子计算机,别再只知道罗翔了!网上最受欢迎的14位老师,个个让人“开天眼”!...

    除了推荐「学什么」,这次,我还要推荐「跟谁学」. 第一反应,是跟着大学老师学习! 虽然我是北大清华得不到的人,但是听听高校老师讲课,还是 ok 的. 这里借用一位网友的话: 经过在网络上长时间的学习, ...

  5. 关于叶子的思维导图_2020年1月8日叶子老师讲思维导图的制作方法

    叶子: @所有人 大家中午好. 中餐都吃好了嘛? 这里还有一份甜点,献给大家哦! 来一份思维导图 ✈️✈️✈️ 叶子: ️看森林. 先看森林再看树木.用思维导图建立对书认知的整体框架. 叶子: ️可视 ...

  6. python传智播客王铭东_传智播客Python学科的王铭东老师讲的怎么样 |

    传智播客Python学科的王铭东老师讲的怎么样 | python高级编程 视频教程2020-09-20 16:40:21人已围观 python好学吗? Python相比于其程语言更容易学习,但是想学精 ...

  7. 中南大学电子信息 单片机_沙漠老师讲专业系列三:电子信息类相关专业解读(1)...

    电子信息类专业属于前沿科技,也是一个宽口径就业的专业.当前社会是信息网络时代,计算机.电子信息行业发展非常迅速,可以用日新月异来形容,在将来一定的时期内会持续大热,同时也会给人类带来意想不到的生活便利 ...

  8. 毕老师讲Java--TreeSet

    毕老师讲Java–TreeSet Tree如何排序的两种方式 Set 元素是无序(存入与取出的顺序不相同)的,且元素不可以重复:Set集合的功能和Collection功能是一致的:HashSet 底层 ...

  9. 中南大学电子信息 单片机_沙漠老师讲专业系列三:电子信息类相关专业解读(2)...

    电子信息类专业属于前沿科技,也是一个宽口径就业的专业.当前社会是信息网络时代,计算机.电子信息行业发展非常迅速,可以用日新月异来形容,在将来一定的时期内会持续大热,同时也会给人类带来意想不到的生活便利 ...

最新文章

  1. 从JoinBatchGroup 代码细节 来看Rocksdb的相比于leveldb的写入优势
  2. CISCO 路由器(2)
  3. 2020 年 Java 面试常见 350 题
  4. 桌面应用程序员简单尝试Rich JavaScript Application
  5. PaddlePaddle训练营——公开课——AI核心技术掌握——第2章机器能“看”的现代技术——源自视觉神经原理的卷积网络简介及深入理解
  6. php getcount_PHP中关键字interface和implements详解
  7. 读完这10本书,“大数据”对你来说,或许就是小菜一碟
  8. pat Simulation Test for PAT(B) 9月4日
  9. vfp中treeview右键菜单_用卓语言程序把Sublime Text 3添加到和删除出右键菜单
  10. matlab中k-means算法_机器学习 | KMeans聚类分析详解
  11. jdbc和mysql做游戏排行榜_MySQL 和 JDBC编程
  12. 另类的切图仔画图方案:svg编辑器+css
  13. 十大Excel函数(一)
  14. Windows NT 技术简介
  15. BP神经网络综合评价法
  16. uni-app自定义二维码扫描及本地图片扫描
  17. Capstone/CS5216 CS5218设计 DP转HDMI转换方案芯片
  18. APP、网站等注册、登录、改密等发送验证码短信的接入流程---创蓝253云通讯
  19. 换个角度看前几天的女孩父亲杀男孩事件 另附一些对当前教育的感想
  20. 首个中文开源扩散模型!中文AI艺术时代即将开启(IDEA封神榜团队)

热门文章

  1. ps怎么抠地图线路_用Photoshop怎么抠地图?
  2. 关于Echarts折线图双Y轴网格的一些配置
  3. 【MindInsight】在win下安装MindInsight遇到“ No module named apos;fcntlapos;“问题
  4. 单片机c语言交通信号灯设计,基于51单片机的交通信号灯设计毕业设计.pdf
  5. 【python】python matplotlib绘制并保存多张图片+绘制多张子图
  6. [:, None]的作用是什么?
  7. 大学计算机应用b,西安理工大学《大学计算机应用》试题 B卷
  8. 二叉排序树实现英文文章单词统计
  9. Linux Ethernet PHY 驱动
  10. protobuf网络框架