在C语言程序学习之初,我们都会学习如何打印 hello world,在学习时我们知道了int main()是主函数,程序从main函数开始执行,这是流程控制的一部分内容。在主函数中我们想要实现一些功能,比如求各个位的累加和,我们就需要声明局部变量,然后对其进行多次取余和除的计算,今天写的子函数就会将这一部分简化,通过一个固定的程序来实现,以下是代码部分:
在代码中,我们可以很清楚的看到分为了两个区域, 下面是主函数,上面则是我们的子函数,命名为sum;
首先我们先思考以下各个位的和怎么计算:举例,483,我们首先求他的个位数,则是483%10,对10取余,得到3,然后求他的十位数,483/10=48(因为我们用的整数计算,没有用浮点数,所以对省略小数部分),48%10=8,再次对10取余得到8,那么我们再除以十,得到4,4%10=4,然后我们将3 8 4累加起来,就是我们想要的结果
通过上述步骤我们可以总结出规律,先取余得到最低位数字,然后除以10,将数字降一位,再次取余得到最低位,循环此步骤后累加起来结果就可以完成。
先看主函数部分:我们声明了整数变量 m 来代表累加和,将子函数得到的结果赋值给m。
然后打印结果,整体变量a先被赋值2024,调用子函数计算得到累加和是8,然后再对a赋值10086,调用子函数得到结果是15
再看子函数:在 sum 中运用了while循环;调用子函数时,会传入一个数 n ,这个数就是需要各个位求和的数,然后声明临时变量 r,当n>0 时就进行while循环内的部分, 先取余将最低位赋值给r;然后 n除以10 ,然后判断n是否符合条件,如果n>0 ,则再次将n对10取余,将得到的数加到r,往复此步骤,直到n<0,然后返回 r ,得到各个位的累加和。