为什么输出每一位的数字 这么写是正确的(深蓝色的地方) 有点无法理解 有人可以解释一下吗
为什么输出每一位的数字 这么写是正确的(深蓝色的地方) 有点无法理解 有人可以解释一下吗
为什么输出每一位的数字 这么写是正确的(深蓝色的地方) 有点无法理解 有人可以解释一下吗
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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的最低位,下一次循环可以准备处理倒数第二位 }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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后投屏调试只能显示一个设备