代码之家  ›  专栏  ›  技术社区  ›  KlaudynaZ

C#将数据转录到第二个表并将其反转

  •  0
  • KlaudynaZ  · 技术社区  · 7 年前

    我将非常感谢您的帮助,因为我不确定如何完成这个项目。 我应该用两个表编写程序。第一个将用数字填充 Random tab = new Random(); . 之后,我应该把数字倒过来填到第二张表中。

    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--)
            {
    
            }
           */
        }
    }
    
    4 回复  |  直到 7 年前
        1
  •  0
  •   Filip Milovanović    7 年前

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

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

    数组索引形成 0 tablica2.Length - 1 (比长度小一倍,因此索引 tablica2.Length 阵列)。
    你的循环从 表2.长度 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];
    }
    
        2
  •  0
  •   Musab    7 年前
     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];
        }
    
    }
    

        3
  •  0
  •   KlaudynaZ    7 年前

    @Sinatr感谢您的主题。这真的很有帮助,但只有一张桌子。

    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();
        }
    }
    } 
    
        4
  •  0
  •   Paul Kertscher    7 年前

    我觉得这样行得通

    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]);
    }