C# 将数据转录到第二个 table 并反转它们

C# Transcribing data to the second table and reversing them

非常感谢您的帮助,因为我不确定如何制作这个程序。 我应该用两个 table 编写程序。第一个将用数字 Random tab = new Random(); 填充它。之后我应该反转数字并将它们填充到第二个 table.

我完成了第一个功能,但我不确定如何从第二个开始table?

class Program
{


    static void Main(string[] args)
    {
        int[] tablica1 = new int[20];

        Random tab = new Random();

        for (int i = 0; i < 20; i++)
        {
            tablica1[i] = tab.Next(20);
            Console.WriteLine("Tablica wylosowała nastepujace elementy:");
            Console.WriteLine(tablica1[i]);
        }

        Console.Read();

        int[] tablica2 = new int[20];

        /*for (int i = 20; i > 0; i--)
        {

        }
       */
    }
}
 static void Main(string[] args)
{
    int[] tablica1 = new int[20];

    Random tab = new Random();

    for (int i = 0; i < 20; i++)
    {
        tablica1[i] = tab.Next(20);
        Console.WriteLine("Tablica wylosowała nastepujace elementy:");
        Console.WriteLine(tablica1[i]);
    }

    Console.Read();

    int[] tablica2 = new int[20];

    for (int i = 20; i > 0; i--)
    {
      tablica2[i]=tablica1[20-i];
    }

}

}

@Sinatr 谢谢你的这个话题。这真的很有帮助,但只有一个 table。 @Filip Milovanović 是的,我必须做两个 tables :) 先保留后,我应该将元素从第一个放到第二个。我改变了这个,但在控制台中我仍然只能看到第一个。 :(

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Randomy1
{
    class Program
{

    static void Main(string[] args)
    {
        int[] tablica1 = new int[20];

        Random tab = new Random();

        for (int i = 0; i < 20; i++)
        {
            tablica1[i] = tab.Next(20);
            Console.WriteLine(tablica1[i]);
        }



        int[] tablica2 = new int[20];

       for (int j = tablica2.Length; j > 1 ; j--)
        {
            tablica2[j] = tablica1[20-j];
            Console.WriteLine(tablica2[j]);
        }

        Console.Read();
    }
}
} 

你没有完全描述当你 运行 代码时到底发生了什么,但我认为问题出在这部分 - 因为这应该给你一个 IndexOutOfRangeException:

for (int j = tablica2.Length; j > 1 ; j--)
{
    tablica2[j] = tablica1[20-j];
    Console.WriteLine(tablica2[j]);
}

数组索引从 0tablica2.Length - 1(长度减一,因此索引 tablica2.Length 在数组 之外 ).
由于某种原因,您的循环从 tablica2.Length 两个 2 反转。

所以一开始执行,j就是20,但是最高索引是19

更改循环使其进入完整范围,并更改循环体以便您不会访问超出范围的索引,方法有以下两种:

for (int j = tablica2.Length - 1; j >= 0 ; j--)   // goes from 19 to 0
{
    tablica2[j] = tablica1[tablica1.Length - j - 1];
}

for (int j = tablica2.Length; j > 0 ; j--)   // goes from 20 to 1
{
    tablica2[j - 1] = tablica1[tablica1.Length - j];
}

我认为这可行

for (int i = 0; i < 20; i++)
{
    tablica2[i] = tablica1[20 - (i + 1)];

    Console.WriteLine("Tablica 1st :: " + tablica1[i] + " Tablica 1 Reverse "      + tablica1[20 - (i + 1)] + " Tablica 2 " + tablica2[i]);
}