我希望总数为9的所有数字都在控制台中写入。 这就是我想出了这么远,它不工作:C#如果总和等于9,则为数字的位数之和
class Program
{
static void Main(string[] args)
{
int sum = 0;
for (int n = 100; n < 1000; n++)
{
while (n <1000)
{
sum += n % 10;
n /= 10;
if (sum == 9)
Console.WriteLine(sum);
}
}
}
}
那么你使用的是'sum + = n%10;'这意味着一旦'sum == 9'是真的,随着总和的增加,它永远不会变成真。您可能希望在每次迭代结束时将其重置为0。这可以通过直接设置它的值来完成,而不是增加 - 'sum = n%10;'或者在你的条件之后,总和= 0;' –
这是一个简单的修复,我确定你会花费几分钟后逐步调试你的变量,你会看到问题 –
@AlfieGoodacre是正确的,但还有更多的; sum开始为0,但在第一个while循环之后,sum = 10.然后你减少你的for的计数器使它= 10。下一个循环,sum = 11,并且n变成1.你的while永远不会退出 – bixarrio