有没有人可以帮助我?我正在写一个程序(颠倒数组),但它不会运行:(
我正在写一个关于使用3种方法(GenerateNumber,reverse和PrintOut)颠倒数组的程序。有没有人可以帮助我?我正在写一个程序(颠倒数组),但它不会运行:(
不幸的是, “吨运行。你能帮助我找到错误并解决这些问题?
为什么它不跑?
public class Program
{
static int[] GenerateNumber()
{
string a = Console.ReadLine();
int b = Convert.ToInt32(a);
int[] number = new int [b];
string[] c = new string[b];
for (int index = 0; index < number.Length; index++)
{
c[index] = Console.ReadLine();
number [index]= Convert.ToInt32(c[index]);
}
return number;
}
static int[] reverse(int[] array)
{
for (int index =0; index <array.Length; index++)
{
int c = array[index];
array[index] = array[array.Length - index - 1];
array[array.Length - index - 1]= c;
}
return array;
}
static int[] PrintOut (int[] array)
{
for (int index = 0; index > array.Length; index++)
Console.Write(array[index]);
return array;
}
static void Main(string[] args)
{
int[] number = GenerateNumber();
reverse(number);
PrintOut(number);
Console.ReadKey();
}
不当行为的直接原因是在
static int[] PrintOut (int[] array)
{
for (int index = 0; index > array.Length; index++) // <- wrong condition
Console.Write(array[index]);
的比较应该是<
而不是>
:
for (int index = 0; index < array.Length; index++)
一个更好的选择,但是,是foreach
循环,而不是for
foreach (var item in array)
Console.Write(item); // propably, you want WriteLine not Write
几点建议:
public class Program {
static int[] GenerateNumber() {
// You don't want "c" array, but "number"
int[] number = new int [Convert.ToInt32(Console.ReadLine())];
for (int index = 0; index < number.Length; index++)
number [index] = Convert.ToInt32(Console.ReadLine());
return number;
}
// Nice implementation, nothing to improve but naming (reverse -> Reverse)
static int[] Reverse(int[] array) {
for (int index = 0; index <array.Length; index++) {
int c = array[index];
array[index] = array[array.Length - index - 1];
array[array.Length - index - 1] = c;
}
return array;
}
static int[] PrintOut (int[] array) {
// foreach is easier to implement and easier to read
foreach (var item in array)
Console.WriteLine(item); // <- you, probably, want WriteLine not Write
return array;
}
static void Main(string[] args) {
int[] number = GenerateNumber();
Reverse(number);
PrintOut(number);
Console.ReadKey();
}
感谢:D。现在我真的了解foreach的用法:D –
@VũĐứcDũng:不客气!懒惰和可读性(它是.net,而不是你和我谁应该计算索引和类似的东西)是强大的手段:) –
在这个程序的GenerateNumber方法,我尝试使用foreach方法。 ** foreach(var item in number) Convert.ToInt32(Console.ReadLine()); 退货编号; ** [code](这是我第一次使用这个网页,所以我不怎么写代码:D) 但是程序没有运行。你能为我解释一下吗? –
没有读通过完全,但它看起来像'index
phoxis
'for(int index = 0; index> array.Length; index ++)'应该是'index
哦,我明白了,非常感谢你 –