【发布时间】:2014-04-17 08:43:42
【问题描述】:
在第一部分中,我用数组元素创建了对,数组的长度是原来的两倍。数组总是偶数。
这是第一部分:
using System;
class Program
{
static void Main()
{
int[] Arr = new int[]{1, 2, 0, 3, 4, -1};
int[] newArr = new int[(Arr.Length / 2)];
int sum = 0;
for (int i = 0; i < Arr.Length; i+=2)
{
if (i + 1 < Arr.Length)
{
newArr[sum] = Arr[i] + Arr[i + 1];
}
else
{
newArr[sum] = Arr[i];
}
sum++;
}
在第二部分中,我想检查数组元素是否相等。我想要做的是每次 for 循环中的索引等于数组中的下一个索引时递增 int 计数器。
第二部分我有什么:
int counter = 0;
for (int i = 0; i < newArr.Length -1; i++)
{
if (newArr[i] == newArr[i + 1])
{
counter++;
}
else
{
Console.Write(" ");
}
}
这段代码有什么问题。我似乎无法理解如何编写适用于 int Arr[5] 和 int Arr[5000] 的代码
【问题讨论】:
-
i < newArr.Length - 1 -
现在我明白了我在 Visual Studio 中遇到的异常
-
当
i等于newArr.Length - 1时它会在newArr[i + 1]崩溃,你应该从0迭代到< newArr.Length-1 -
如果你可以使用 linq,检查所有数组元素是否相等的最短方法是写 newArr.All(a => a == newArr[0]);
标签: c# arrays if-statement for-loop