2301_79364069 2023-10-27 10:41 采纳率: 82.4%
浏览 6
已结题

为什么输出每一位的数字 这么写是正确的(深蓝色的地方) 有点无法理解 有人可以解释一下吗

img


为什么输出每一位的数字 这么写是正确的(深蓝色的地方) 有点无法理解 有人可以解释一下吗

  • 写回答

2条回答 默认 最新

  • 庞加莱的算法空间 2023-10-27 10:56
    关注

    这个是利用了一点点数学原理哈,首先呢,c语言里的除法是"整型除法",是只保留整数部分,丢弃余数的哈。比如346/10=34
    遇到这种看起来有点抽象的代码,可以尝试举个实际的例子。比如一个五位数12345,那么按照你的代码,
    c=1, d=12, e=123, f=1234, g=12345,那么你可以再看一下蓝色部分的代码,恰好可以输出每个位置上的数字。不过,我感觉这个代码还可以再"自动化"一些,你看这么写可以嘛(如果你已经学习过循环while语句的话)

    int a; 
    scanf("%d", &a); // 输入正整数a
    while(a > 0){ // a>0说明a还有整数位没打印
      int d = a % 10; // 取出最低位的数字
      printf("%d", d); // 打印结果
      a = a / 10; // 这里a/10相当于是去掉了a的最低位,下一次循环可以准备处理倒数第二位
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月6日
  • 已采纳回答 10月29日
  • 创建了问题 10月27日

悬赏问题

  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分 合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备