【发布时间】:2022-01-25 21:13:11
【问题描述】:
我正在寻找一种方法,将数组中大于 9 的每个 int 替换为数字的总和。我将在下面演示一个示例。
我有这个数组:
int[] ints2 = new int[] { ints[0] * 2, ints[1], ints[2] * 2, ints[3], ints[4] * 2, ints[5], ints[6] * 2, ints[7], ints[8] * 2, ints[9]};
我想将第一个 int 替换为两位数的总和。 假设 ints[0] = 9。而 ints[0]*2 = 18。总和应该是 1+8 = 9。
我可以对整数使用某种替换方法吗?或者你们对如何处理这个问题有更好的想法?
我是这样尝试的,但显然我错了:
foreach (int number in ints)
{
int newNumberInt;
if (number > 9)
{
string newNum = number.ToString();
char[] charNum = newNum.ToCharArray();
int[] intNum = Array.ConvertAll(charNum, n => (int)Char.GetNumericValue(n));
newNumberInt = intNum[0] + intNum[1];
}
newNumberInt = number;
}
【问题讨论】:
-
你应该采取更小的步骤。编写一个函数,它接受一个 int 并将它的数字之和作为 int 返回。 然后测试它直到它工作。。然后取一个数组并将特定数字替换为零。 测试它直到它起作用。然后用您之前测试的功能切换零部分替换。 测试它直到它起作用。你现在正试图吃对你来说太大的食物。更小的步骤。
-
ints2有什么关系?它没有在您的代码中使用 -
ints2 应该只是整数,因为我运行了一个测试!
-
如果你有 999 会怎样?应该先变成 27 再变成 9 吗?
-
你想对负数做什么? -999;结局如何?