如何在 C# 中使用三种不同的方法反转数组
How to reverse an array using three separate methods in C#
我目前正在阅读一本电子书以学习 C#,但我目前正处于卡住的位置。我觉得一旦我完成并理解了下一步,它会真正加速我的理解和学习,因为我接下来要 classes。
我目前面临的挑战我必须做到以下几点:
- 制作一个使用方法反转数组的程序。
- 创建三种方法:一种创建数组,一种打印数组,一种反转数组。
- 理想情况下,它将允许用户输入所需的数组长度。
- 不允许使用反向数组方法。
这是我到目前为止得到的代码,但我对如何创建反向方法非常困惑,我觉得我目前拥有的也不是所需要的。我只需要在此处进行额外的推动,使其点击到位并让我获得所需的理解。如果您愿意,可以随意将提示/技巧/建议放在与解决方案相反的位置。
谢谢大家
使用系统;</p>
<p>命名空间Using_methods_to_reverse_an_array
{
class 程序
{
静态 int[] CreateArray()
{
int[] array = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
return数组;
}
静态无效 PrintNumbers()
{
foreach(CreateArray() 中的整数)
{
Console.WriteLine(数字);
}
}
静态无效主要(字符串[]参数)
{
int[] 数字 = CreateArray();
打印数字();
Console.ReadLine();
}
}
}
static int[] Reverse(int[] arr){
int [] arr2 = new int[arr.Length];
for (int i = arr.Length - 1, i2 = 0; i >= 0; i--, i2++)
{
arr2[i2] = arr[i];
}
return arr2;
}
static void PrintNumbers(int[] arr)
{
foreach (int numbers in arr)
{
Console.WriteLine(numbers);
}
}
static void Main(){
int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] arr2 = Reverse(arr);
PrintNumbers(arr2);
}
打印
10
9
8
7
6
5
4
3
2
1
也许我理解错了,但我认为应该这样做:
class Program
{
static int[] CreateArray()
{
int[] array = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
return array;
}
//I changed this to receive an input array
static void PrintNumbers( int[] inputArray)
{
foreach (int numbers in inputArray)
{
Console.WriteLine(numbers);
}
}
//this function should reverse any array passed to it
static void ReverseArray(int[] inputArray)
{
int len = inputArray.Length;
int[] newArray = new int[len];
foreach (int i in inputArray)
{
newArray[i] = inputArray[len - 1];
len--;
}
}
static void Main(string[] args)
{
int[] numbers = CreateArray();
PrintNumbers(numbers);
ReverseArray(numbers);
//Console.ReadLine();
}
}
非常感谢大家的帮助,在进行了更多谷歌搜索和测试后,我的最终产品是这样的:
using System;
namespace Using_methods_to_reverse_an_array
{
class Program
{
static int[] CreateArray()
{
int[] array = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
return array;
}
static void PrintNumbers(int[] array)
{
foreach (int numbers in array )
{
Console.WriteLine(numbers);
}
}
static void ReverseNumbers(int[] array)
{
for (int i = 0; i < array.Length/2; i++)
{
int temp = array[i];
array[i] = array[array.Length - i - 1];
array[array.Length - i - 1] = temp;
}
}
static void Main(string[] args)
{
int[] numbers = CreateArray();
ReverseNumbers(numbers);
PrintNumbers(numbers);
Console.ReadLine();
}
}
}
我目前正在阅读一本电子书以学习 C#,但我目前正处于卡住的位置。我觉得一旦我完成并理解了下一步,它会真正加速我的理解和学习,因为我接下来要 classes。
我目前面临的挑战我必须做到以下几点:
- 制作一个使用方法反转数组的程序。
- 创建三种方法:一种创建数组,一种打印数组,一种反转数组。
- 理想情况下,它将允许用户输入所需的数组长度。
- 不允许使用反向数组方法。
这是我到目前为止得到的代码,但我对如何创建反向方法非常困惑,我觉得我目前拥有的也不是所需要的。我只需要在此处进行额外的推动,使其点击到位并让我获得所需的理解。如果您愿意,可以随意将提示/技巧/建议放在与解决方案相反的位置。
谢谢大家
使用系统;</p>
<p>命名空间Using_methods_to_reverse_an_array
{
class 程序
{
静态 int[] CreateArray()
{
int[] array = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
return数组;
}
静态无效 PrintNumbers()
{
foreach(CreateArray() 中的整数)
{
Console.WriteLine(数字);
}
}
静态无效主要(字符串[]参数)
{
int[] 数字 = CreateArray();
打印数字();
Console.ReadLine();
}
}
}
static int[] Reverse(int[] arr){
int [] arr2 = new int[arr.Length];
for (int i = arr.Length - 1, i2 = 0; i >= 0; i--, i2++)
{
arr2[i2] = arr[i];
}
return arr2;
}
static void PrintNumbers(int[] arr)
{
foreach (int numbers in arr)
{
Console.WriteLine(numbers);
}
}
static void Main(){
int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] arr2 = Reverse(arr);
PrintNumbers(arr2);
}
打印
10
9
8
7
6
5
4
3
2
1
也许我理解错了,但我认为应该这样做:
class Program
{
static int[] CreateArray()
{
int[] array = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
return array;
}
//I changed this to receive an input array
static void PrintNumbers( int[] inputArray)
{
foreach (int numbers in inputArray)
{
Console.WriteLine(numbers);
}
}
//this function should reverse any array passed to it
static void ReverseArray(int[] inputArray)
{
int len = inputArray.Length;
int[] newArray = new int[len];
foreach (int i in inputArray)
{
newArray[i] = inputArray[len - 1];
len--;
}
}
static void Main(string[] args)
{
int[] numbers = CreateArray();
PrintNumbers(numbers);
ReverseArray(numbers);
//Console.ReadLine();
}
}
非常感谢大家的帮助,在进行了更多谷歌搜索和测试后,我的最终产品是这样的:
using System;
namespace Using_methods_to_reverse_an_array
{
class Program
{
static int[] CreateArray()
{
int[] array = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
return array;
}
static void PrintNumbers(int[] array)
{
foreach (int numbers in array )
{
Console.WriteLine(numbers);
}
}
static void ReverseNumbers(int[] array)
{
for (int i = 0; i < array.Length/2; i++)
{
int temp = array[i];
array[i] = array[array.Length - i - 1];
array[array.Length - i - 1] = temp;
}
}
static void Main(string[] args)
{
int[] numbers = CreateArray();
ReverseNumbers(numbers);
PrintNumbers(numbers);
Console.ReadLine();
}
}
}