1

第一次执行循环:一个值被分配给PlaatSnoepArray[0,0] and PlaatSnoepArray[0,1].

第二次执行循环:将一个值分配给PlaatSnoepArray[1,0] and PlaatSnoepArray[1,1] AND 和 的值PlaatSnoepArray[0,0]设置PlaatSnoepArray[0,1]为 0。

PlaatSnoepArray[2,0]第三次执行循环: 为和赋值PlaatSnoepArray[2,1]PlaatSnoepArray[1,0]和的值PlaatSnoepArray[1,1]设置为0

我怎样才能防止这些值被设置回 0 ?

    static Random Rangen = new Random();
    static void PlaatsSnoep(int aantal)
    {

        for (int i = 0; i < aantal; i++)
        {

            int SnoepX = Rangen.Next(25, 94);
            int SnoepY = Rangen.Next(3, 23);
            Console.SetCursorPosition(SnoepX, SnoepY);
            Console.WriteLine("0");

            int[,] PlaatssnoepArray = new int[aantal,2];

            PlaatssnoepArray[i, 0] = SnoepX;
            PlaatssnoepArray[i, 1] = SnoepY;

        }
4

5 回答 5

1

创建array外部for循环:

    int[,] PlaatssnoepArray = new int[aantal,2];

    for (int i = 0; i < aantal; i++)
    {

        int SnoepX = Rangen.Next(25, 94);
        int SnoepY = Rangen.Next(3, 23);
        Console.SetCursorPosition(SnoepX, SnoepY);
        Console.WriteLine("0");

        PlaatssnoepArray[i, 0] = SnoepX;
        PlaatssnoepArray[i, 1] = SnoepY;

    }
于 2013-01-31T11:16:14.713 回答
1

我怎样才能防止这些值被设置回 0 ?

您需要移动PlaatssnoepArray外部循环的创建。目前,每个迭代都分配给自己的实例 of int[aantal,2],一旦循环迭代结束,它就会超出范围并被丢弃。

int[,] PlaatssnoepArray = new int[aantal,2];
for (int i = 0; i < aantal; i++)
{
    // The rest of your code
}
于 2013-01-31T11:16:26.467 回答
1

您的数组声明在循环内,将其移到外面。

int[,] PlaatssnoepArray = new int[aantal,2];
for (int i = 0; i < aantal; i++)
    {
        int SnoepX = Rangen.Next(25, 94);
        int SnoepY = Rangen.Next(3, 23);
        Console.SetCursorPosition(SnoepX, SnoepY);
        Console.WriteLine("0");
        PlaatssnoepArray[i, 0] = SnoepX;
        PlaatssnoepArray[i, 1] = SnoepY;

    }
于 2013-01-31T11:16:29.917 回答
0

将您的数组从循环中取出..

于 2013-01-31T11:16:24.263 回答
0

您正在循环内初始化数组,将其移出

static Random Rangen = new Random();
static void PlaatsSnoep(int aantal)
{

    int[,] PlaatssnoepArray = new int[aantal,2];
    for (int i = 0; i < aantal; i++)
    {

        int SnoepX = Rangen.Next(25, 94);
        int SnoepY = Rangen.Next(3, 23);
        Console.SetCursorPosition(SnoepX, SnoepY);
        Console.WriteLine("0");


        PlaatssnoepArray[i, 0] = SnoepX;
        PlaatssnoepArray[i, 1] = SnoepY;

    }
}

那么使用 aList<Point>()而不是数组呢?

    List<Point> PlaatssnoepList = new List<Point>(); 
    for (int i = 0; i < aantal; i++)
    {
        Point p = new Point(Rangen.Next(25, 94), Rangen.Next(3, 23));
        Console.SetCursorPosition(p.X, p.Y);
        Console.WriteLine("0");
        PlaatssnoepList.Add(p)
    }
于 2013-01-31T11:17:24.293 回答