luanshils 发表于 2020-5-12 00:08

在线求助一个C#数组问题

本帖最后由 luanshils 于 2020-5-12 18:40 编辑

int[] n;
n= new int;
      for (int i= 0,j=0; i <n.Length; i++,j+=2)
      {
            n = i;//运行提示这行数组越界
            n = i;
      }

代码发帖为啥不能tab缩进

本来想实现的结果是n的长度小于4,每个元素是 00 11 22 33 44 这样的一对,后面发现我代码好像有问题?
希望各位能够指点迷津



有大佬说数组越界,确实是这个情况,

不对索引操作,单独遍历了i和j




我另一种方法是用arraylist,可以是可以,就是希望能看到各位大佬的有没有更巧妙的方法
看到有人说让我补充一下我的想法,那我补充一下:
比方我传入数组长度为,8,那我下标是0-7 {0,0,1,1,2,2,3,3},这样四对int类型的,然后如果传入数组长度为16,那就要有8对这样的

神之名 发表于 2020-5-12 00:27

想要数组元素是00.11.22.33.44?

luanshils 发表于 2020-5-12 00:29

神之名 发表于 2020-5-12 00:27
想要数组元素是00.11.22.33.44?

是的,您有什么好办法吗?

神之名 发表于 2020-5-12 00:35

luanshils 发表于 2020-5-12 00:29
是的,您有什么好办法吗?

这个数组一定要int类型?

神之名 发表于 2020-5-12 00:52

字符串数组结果数组元素是{"00","11","22","33","44"}
string[]n=new string;
for(int i=0;i<n.length;i++)
{
      n=""+i+i;
}
如果要int数组,结果就是{0,11,22,33,44}
int[]n=new int;
for(int i=0;i<n.length;i++)
{
      n=i*11;
}

CIBao 发表于 2020-5-12 01:38

数组索引用的是变量 `j` ,而你循环控制用的是变量 `i` , 直接越界爆炸
建议用单步调试去看变量变化

luanshils 发表于 2020-5-12 07:28

本帖最后由 luanshils 于 2020-5-12 07:37 编辑

CIBao 发表于 2020-5-12 01:38
数组索引用的是变量 `j` ,而你循环控制用的是变量 `i` , 直接越界爆炸
建议用单步调试去看变量变化
好像是爆炸了,我不禁陷入了沉思

luanshils 发表于 2020-5-12 07:37

神之名 发表于 2020-5-12 00:52
字符串数组结果数组元素是{"00","11","22","33","44"}
string[]n=new string;
for(int i=0;i

忘了说,其实是想要

雪落下的声音 发表于 2020-5-12 08:02

设两个不同的数组x[],y[],在一个if循环里赋值

luanshils 发表于 2020-5-12 08:12

雪落下的声音 发表于 2020-5-12 08:02
设两个不同的数组x[],y[],在一个if循环里赋值

这个可以
页: [1] 2 3
查看完整版本: 在线求助一个C#数组问题