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

这个是利用了一点点数学原理哈,首先呢,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的最低位,下一次循环可以准备处理倒数第二位
}