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]);
}
数组索引从 0
到 tablica2.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]);
}
非常感谢您的帮助,因为我不确定如何制作这个程序。
我应该用两个 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]);
}
数组索引从 0
到 tablica2.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]);
}