【发布时间】:2021-03-25 08:26:59
【问题描述】:
我必须创建数组并用 1-100 之间的随机数填充它。从那里,我必须找到第一个奇数并打印出来。 如果数组中没有奇数,也必须打印 0。 这是我所做的:
int[] tab = new int[10];
int[] uneven = new int[tab.Length];
int i;
for (i = 0; i < tab.Length; i++)
tab[i] = new Random().Next(100) + 1;
do
{
uneven[i] = tab[i];
} while (tab[i] % 2 == 1);
Console.WriteLine(uneven[0]);
所以我的理由是,只要 tab[i] 不均匀,我就在不均匀 [i] 中添加不均匀数字,然后打印数组的第一个元素。 但是,我得到“脱离债券异常”。
提前感谢您的帮助。
【问题讨论】:
-
tab[i] % 2 == 1应该是tab[i] % 2 != 0 -
在 for 循环之后,
i等于tab.Length。因此,当您到达uneven[i]时,它是非法索引。你需要在 for 循环之后重置 i,并在 do-while 循环中增加它以防止无限循环。 -
您应该只拨打一次
new Random(),然后拨打Next,否则您的号码可能不是随机的。