【发布时间】:2018-04-02 12:21:40
【问题描述】:
我是编程新手,尤其是 C#,但我今年正在学习它,我意识到我确实喜欢它并且真的很想理解它。然而,我们的老师让我们自己学习。好的,没问题,互联网就是这么神奇。
所以我把这个练习作为家庭作业:
==== 计算不等于0的数字的和、乘积和整数的位数。====
问题是,我只知道如何使用 do while 和 if 来制作它,而且效果很好,但她希望我们也使用 SWITCH 来制作它,这就是我迷失的地方,因为我只是不知道如何构建案例(案例为0时很好,但是当数字或n!=为0时如何写案例?!)
我真的需要一些帮助,并且非常感谢 sosososo 提供的任何帮助!另外,您能否提供一个解释?太感谢了! :D
int n, s = 0, p = 1, d = 0, digit;
Console.Write("Number n : ");
n = Convert.ToInt32(Console.ReadLine());
if (n == 0)
p = 0;
do
{
digit = n % 10;
s += digit;
if (digit != 0)
p *= digit;
d++;
n /= 10;
} while (n != 0);
Console.WriteLine("The sum of the digits is: {0} ", s);
Console.WriteLine("The product of the digits not equal to 0 is : {0} ", p);
Console.WriteLine("The number of the digits is: {0}", d);
Console.ReadKey();
【问题讨论】:
-
如果我们有办法捕获未在 switch 构造中列出的情况...
-
有趣的事实是,这至少是我今天读过的第二个具有相同主题的问题(数字的乘积......)......这里解释了开关:docs.microsoft.com/en-us/dotnet/csharp/language-reference/…
-
告诉你的老师你想使用 Linq :)
string str = "12345"; var s = str.Sum(x => x - '0'); var p = str.Select(x => x - '0').Aggregate((y, i) => y *= i);
标签: c# if-statement switch-statement product digits