数组:部分填充
Posted
技术标签:
【中文标题】数组:部分填充【英文标题】:Array: partial filling 【发布时间】:2021-12-16 01:23:31 【问题描述】:对于学校作业,我需要编写一个程序,其中用户键入两个整数(表示索引),然后一个方法在这两个数字之间生成随机数。例如:如果用户键入 3 和 8 并且数组长度为 15,那么一个方法将在数组中的索引 3 和索引 8 之间生成随机数。我正在尝试这样的事情,但它不起作用:
int[] arry = new int[15];
int b = int.Parse(Console.ReadLine());
int a = int.Parse(Console.ReadLine());
Filling(a, b, arry);
static void Filling(int a, int b, int[] arry)
Random rnd = new Random();
for (int i = arry[a]; i < arry[b]; i++)
arry[i] = rnd.Next(3, 31);
Console.WriteLine(arry[i]);
【问题讨论】:
for (int i = arry[a]; i < arry[b]; i++)
-- 你可能希望i
从a
循环到b
,即for (int i = a; i < b; i++)
。由于arry
开始时包含全零,arry[a]
和 arry[b]
都将返回 0
旁注:How to debug small programs 相信我,值得花每一秒阅读和理解 Visual Studio 背后的大师所说的话
【参考方案1】:
如 cmets 中所述,您希望循环在 a
和 b
之间进行迭代。不在存储在数组中的 a 和 b 的值之间。即
for (int i = a; i < b; i++)
arry[i] = rnd.Next(3, 31);
Console.WriteLine(arry[i]);
您可能还想添加一些边界检查以确保 a 和 b 有效。这可以通过在进入循环之前夹紧索引值来完成。
a = Math.Max(a, 0);
b = Math.Min(b, arry.Count);
【讨论】:
以上是关于数组:部分填充的主要内容,如果未能解决你的问题,请参考以下文章
iPhone UITableView 从平面数组填充可变行部分