C语言,题目有图,基础比较差,希望过程详细一些!!!
# include < stdio. h>
int Divide(long x){
int s=0;
while(x!=0)
{s+=x% 10;x/=10;}
return s;
}
void main(){
printf("%d\n" ,Divide(43961));
} 展开
结果是23,这个代码就是将43961这个数字,从最低位开始取,然后将每一位数字累加到一起(1+6+9+3+4累加在变量s中)并返回。
Divide这个函数就是将传入的数值x通过循环取余(x%10)再取整(x/10),来实现从个位开始取出每一位数字并累加在s变量中(s+=x% 10)。
关于取余再取整的思路理解,你可跟这程序走一遍:
步骤1:mian函数调用Divide函数,并传入数字43961。
步骤2:执行Divide函数,变量x值=43961,s初值=0。
步骤3:开始循环,循环条件:只要x不是0就一直循环(while(x!=0))。
循环第一次:s+=x% 10;x/=10;(此时x=43961,所以x%10=1,s=0+1=1。执行x/=10后x变成4396)第一次执行结束x=4396,s=1。
循环第二次:s+=x% 10;x/=10;(此时x=4396,所以x%10=6,s=1+6=7。执行x/=10后x变成439)第二次执行结束x=439,s=7。
循环第三次:同上,执行结束x=43,s=16。
循环第四次:同上,执行结束x=4,s=19。
循环第五次:同上,执行结束x=0,s=23。
步骤4:循环结束,返回s的值,并在main函数中执行打印。