【发布时间】:2019-06-11 04:08:21
【问题描述】:
我正在使用数组和条件语句,现在几乎没有丢失,并希望得到一些输入。
所以,我创建了两个数组
int[] one = new int[] {
4160414, 6610574, 2864453, 9352227, -4750937, -3132620, 2208017,
-2226227, -8415856, -9834062, -3401569, 7581671, 8068562, 7520435,
-9277044, -7821114, -3095212, 966785, 6873349, -8441152, -7015683,
-6588326, -282013, 4051534, 9930123, -3093234 };
int[] two = new int[] {
1099626, 6083415, 8083888, -8210392, 2665304, -8710738, -8708241,
8859200, -1255323, 5604634, 2921294, -7260228, 7261646, 1137004,
5805162, 4883369, 8789460, 9769240, 319012, -7877588, -1573772,
5192333, 1185446, 1302131, 4217472, -3471445};
下一步我在想的是我将不得不遍历每个数组
for (int i = 0; i < one.Length; i++)
{
int xValue = one[i];
for (int j = 0; j < two.Length; j++)
{
int yValue = two[j];
}
}
现在我有了每个数组的索引,我需要检查 xValue 的索引是否小于 yValue 的索引
if (xValue < yValue)
{
// dO SOMETHING HERE
}
if (yValue < xValue)
{
// Do Something HERE
}
我感到困惑的地方是,根据我的理解,C# 不能将新值推送到数组中,它需要是数组的新实例并复制?
所以我试着做
if (xValue < yValue)
{
Array.Copy(one, x, 13);
}
if (yValue < xValue)
{
Array.Copy(two, x, 13)
}
两个数组都有 26 个值,因此需要创建一个包含 13 个的新数组来插入检查的值,但 Array.Copy 似乎无法让数组越界检查下限。
我只是在检查两个数组的索引处的值时感到困惑,然后抓取检查值的最小值,然后取那个小值并将其插入到一个新数组中,然后使用 foreach 循环进行迭代它并将值打印到控制台。 掌心
【问题讨论】:
-
所以你有两个数组,每个数组有 26 项,你想要一个有 13 项的数组?你能解释更多关于逻辑的信息吗(最好用一些工作示例或图表)?目前,在比较两个数组中的相同索引时,您似乎应该得到一个包含最小值的 26 项数组。
-
是的,你说得对,我说错了,我应该得到一个新数组,其中包含两个数组中最小的 26 个数字所以如果我比较 ArrayOne 并且第一个值为 2,然后是第二个数组被检查并且该值为 3,然后将抓取值 2 并将其插入到新数组中
标签: c# arrays loops if-statement conditional