static void Main()
  {
  string Test;
  int MaxLength = 50;
  char[] str = new char[MaxLength];
  int i;
  int CurrentPos = 0;
  Console.WriteLine("请输入要的字符串:");
  Test = Console.ReadLine();
  for (i = 0; i < Test.Length; i++)
  {
  if (CurrentPos >= MaxLength)
  break;
  str[CurrentPos] = ch;
  CurrentPos++;
  }
  Console.Write("输入字符串的反序是:");
  for (i = 0; i < Test.Length; i++)
  {
  if (CurrentPos <= 0)
  break;
  Console.Write(str[CurrentPos]);
  CurrentPos--;
    
  Console.ReadLine();   
这是用一维数组模拟堆栈的操作,为什么输不出,上面的ch怎么冒出来的,能帮我纠正一下吗?谢谢各位!!!

解决方案 »

  1.   

    http://topic.csdn.net/u/20100425/13/1969cc7c-1b07-4782-94d0-a470ec02ced0.html是要将Test 先存到str中然后将其反序.
                string Test;
      int MaxLength = 50;
      char[] str = new char[MaxLength];
      int i;
      int CurrentPos = 0;
      Console.WriteLine("请输入要的字符串:");
      Test = Console.ReadLine();
      char ch=' ';
      for (i = 0; i < Test.Length; i++)
      {
          ch = Test[i];
      if (CurrentPos >= MaxLength)
      break;
      str[CurrentPos] = ch;
      CurrentPos++;
      }
      Console.Write("输入字符串的反序是:");
      for (i = 0; i < Test.Length; i++)
      {
          if (CurrentPos <= 0)
              break;
          Console.WriteLine(str[CurrentPos - 1]);      CurrentPos--;
      }
      Console.ReadLine();   
      

  2.   

    string Test;
      int MaxLength = 50;
      char[] str = new char[MaxLength];
      int i;
      int CurrentPos = 0;
      Console.WriteLine("请输入要的字符串:");
      Test = Convert.ToString(Console.ReadLine());
      for (i = 0; i < Test.Length; i++)
      {
      if (CurrentPos >= MaxLength)
      break;
      str[CurrentPos] =Test[i];
      CurrentPos++;
      }
      Console.Write("输入字符串的反序是:");
      for (i = CurrentPos; i >= 0; i--)
      {
      Console.Write(str[i]);
      }
      Console.ReadKey();   
    }
    你试试我改的