【问题标题】:How to Reverse integers using 'for loop' and an 'array' in C#如何在 C# 中使用“for循环”和“数组”反转整数
【发布时间】:2014-10-07 13:03:33
【问题描述】:

我是 C# 新手,我正在学习反转整数(数字)。我必须使用 forloop 和一个数组来完成代码,但我真的不知道如何使用它们。
例如。如果输入是:1 2 3 4 5 6
结果应该是:6 5 4 3 2 1

谁能帮帮我。谢谢你:)

编辑:真的很抱歉,我忘了添加代码。这里是。再次感谢

static void Main(string[] args)
{
    Console.WriteLine("Enter 6 Numbers");
    int numb = int.Parse(Console.ReadLine());
    int reverse = 0;
    while (numb > 0)
    {
        int rem = numb % 10;
        reverse = (reverse * 10) + rem;
        numb = numb / 10;
    }

    Console.WriteLine("The reverse is = {0}", reverse);
    Console.ReadLine();
}

编辑

这里将一个字符串作为输入,需要反转。只是由于输入仅被视为数字,所以这有点令人困惑。

【问题讨论】:

  • 您是要反转数组中的整数,还是反转整数中的数字?在我看来,你的话是一回事,而你的代码却完全是另一回事。
  • 不清楚标题与示例的关系 - 有数组但没有“整数”...您可能需要先查看有关读取整数数组的现有问题...要匹配标题,您的代码示例应该显示一种带有签名的方法:int[] Reverse(int[] source)void ReverseInPlace(int[] array)

标签: c# arrays for-loop


【解决方案1】:

除非您需要使用循环,否则更简单的解决方案是使用Array.Reverse

int[] array = { 1, 2, 3, 4, 5, 6 };
Array.Reverse(array);

您可以使用 for 循环并迭代数组的一半,将位置与数组另一侧的位置交换。

int holder = 0;
int size = array.Length;
for (int i = 0; i < size / 2; ++i)
{
    holder = array[i];
    array[i] = array[size - 1 - i];
    array[size - 1 - i] = holder;
}

【讨论】:

    【解决方案2】:

    这是一个使用循环和使用 Array.Reverse 功能来反转数字/整数的简单逻辑

    示例:输入 12345 将给我们输出 54321

    namespace PurushLogics
    {
        class Purush_ReverseInteger
        {
            static void Main()
            {
                //Reverse a Number  
                int intstr;
                string intreverse = "";
                int intLength = 0;
                int? intj = null;
                Console.WriteLine("Enter a Number"); // Entering "12345" has input will return "54321" as output
    
                intstr = int.Parse(Console.ReadLine());//Getting integer from Console  
    
                char[] inta = intstr.ToString().ToCharArray();
    
    
                intLength = inta.Length - 1;
                for (int c = intLength; c >= 0; c--)
                {
                    intreverse = intreverse + inta[c].ToString();
                    intj = int.Parse(intreverse);
                }
    
                Console.WriteLine("Reverse Number is \"{0}\"", intj);//Displaying the reverse integer  
                Console.ReadLine();
    
                //Reverse integer using Array.Reverse
                Array.Reverse(inta);
                foreach (char reverse in inta)
                {
                    Console.Write(reverse);
                }
                Console.ReadLine();
            }
        }
    }
    

    【讨论】:

      【解决方案3】:
      static void Main(string[] args)
              {
                  int[] numbers = new int[6];
                  for (int i = 0; i < 6; i++)
                  {
                      Console.Write("Number {0} : ", i + 1);
                      numbers[i] = Convert.ToInt32(Console.ReadLine());
                  }
                  Console.WriteLine();
                  for (int i = 5; i >= 0; i--)
                  {
                      Console.Write("{0} ", numbers[i]);
      
                  }
      
                  Console.ReadLine();
              }
      

      【讨论】:

        【解决方案4】:
           class Program
        {
            static void Main(string[] args)
            {
                int[] array = new int[] { 1, 2, 3, 4, 5, 6,7};
                int temp = 0;
                for (int i = array.Length - 1; i >= (((array.Length - 1) % 2==0)? (((array.Length - 1) / 2)):((array.Length - 1) / 2)+1) ; i--)
                {
                    temp = array[(array.Length - 1) - i];
                    array[(array.Length - 1) - i] = array[i];
                    array[i] = temp;
                }
        
                foreach (var p in array)
                {
                    Console.WriteLine(p);
                }
                Console.ReadLine();
            }
        }
        

        【讨论】:

          【解决方案5】:
          int[] numbers=new int[]{1,2,3,4,5};
              int[] reverse=new int[numbers.Length];
              int j=numbers.Length-1;
              for(int i=0;i<numbers.Length;i++)
              {
          
                  reverse[i]=numbers[j];
                  Console.WriteLine(reverse[i]);
                  j--;
              }
          

          【讨论】:

          • 欢迎来到 Stack Overflow!虽然此代码 sn-p 可能是解决方案,但including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
          【解决方案6】:
              public static int[] Test( params Int32[] nums)
              {
                  int[] ar = new int[nums.Length];
                  var count = 0;
                  for (int i = nums.Length-1; i >= 0 ; i--)
                  {
                      ar[count] = nums[i];
                      count++;
                  }
                  return ar;
              }
          

          【讨论】:

          • 欢迎来到 Stack Overflow!虽然此代码 sn-p 可能是解决方案,但including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
          猜你喜欢
          • 2023-03-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-20
          • 2021-05-02
          • 2021-04-24
          • 1970-01-01
          相关资源
          最近更新 更多