有关C语言的选择题

来源:百度知道 编辑:UC知道 时间:2024/06/05 14:56:21
以下程序段的功能是计算一个整数的各位数字之和,请选择填空。
int n,m=1;
scanf("%d",&n);
for( ;n!0; )
{
m( 选项 );
n/=10;
}
printf("%d",m);

答案是在选项处填+=n%10
但是不太懂,举了个特殊值带进去好像不对嘛,
希望谁能解答一下

m 的 初始值 应为 0

m+=n%10等价于m=m+n%10。%表示取余数,式子很简单,就是对10取余数,然后累加。每次取余数之后都要把这个数缩小10倍。n/=10;等价于n=n/10,由于这里n是整数结果小数点后抹去。
另外程序写错了,m的初始值应该是0不是1,for循环里面应该是n!=0

#include<stdio.h>
void main()
{
int n,m=0; //注意这!
scanf("%d",&n);
for( ;n!=0; )
{
m+=n%10;
n/=10;
}
printf("%d",m);

}

int n,m=0; \* m的初值是0
scanf("%d",&n);
for( ;n!0; ) \*这个相当于 WHILE(n!=o)
{
m( 选项 );
n/=10;
}
printf("%d",m);

我们随便输个数吧,例如265, m+=256%10;则M=6,这步的意思是要取个位数的数值,n/=10,n=256/10;n=25;这步的意思就让让去掉6,不懂可以看下书\的要求。 然后n不等于0 循环继续,m+=25%10;m=6+5,因为这个时候的m是上一次的值,最后m=11;然后在n/=10,n=25/10 ;n=2 就这样 直到 N=0。
你自己算看看,就明白了。

int n,m=0;

scanf("%d",&n);

for( ; n!=0 ; )
{
m+=n%10;
n/=10;
}
printf("%d",m);

比如输入1234;
循环第一次后m=4;n=123;
循环第二次后m=7;n=12