我正在学习C,我很难理解循环和模的用法。我知道Loops是用来缩短程序的,而Modulo用来排除剩下的部分。我的任务是“编写一个C程序来查找单个正整数的总和”。循环和模
我刚花了几个小时试图了解这个问题。我也尝试过。
int n,d=0,s=0;
printf("\nEnter a number\n\n");
scanf("%d",&n);
while(n>0)
{
d = n%10;
s = s+d;
n = n/10;
}
printf("\n sum of the individual digits = %d",s);
我的问题是:
谁能帮助我理解这个程序的流程?为什么使用Modulo?和为什么有N = N/10
Experiements我已经做:
当我除去d = N%10;输出结果会打印出数字。因此它不计算。
即123 = 6 - >它给我136
当我除去线N = N/10这不是表示我的输出。 printf语句有一个参数's'
在此先感谢!
尝试在调试器下逐行运行您的代码(保持监视变量'n','d'和's')。 – pmg 2011-04-26 22:57:24
如果你删除'd = n%10',它会打印'0',因为你永远不会修改's',它最初是'0'。如果删除'n = n/10',它将永远循环,因为你永远不会修改'n',然后它总是> 0。一些实验可能有用,但很难看出它们是如何实现的。更好的办法是插入printf语句,告诉你每个步骤中的各种值(或学习使用调试器)。 – 2011-04-27 02:44:43