一个C#代码转换为C++代码

C#要求转换为一般可看懂的C++格式,可运行和原来输出的答案一样
我手翻了一遍,用转译又翻了一遍,都没有给通过,

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            int n, i, max = 0, elem = 0, sum = 0, k = 0, ax, bx;

            Console.WriteLine("输入数组元素数Введите количество элементов массива:");

            n = Convert.ToInt32(Console.ReadLine());

            if (n < 1)

                Environment.Exit(0);

            int[] a = new int[n];

            Console.WriteLine("输入数组元素Введите элементы массива:");

            for (i = 0; i < n; i++)

                a[i] = Convert.ToInt32(Console.ReadLine());

            max = a[0];

            Console.Clear();

            Console.WriteLine("原始数组Исходный массив:");

            for (i = 0; i < n; ++i)

                if (i == 0) Console.Write(a[i]);

                else Console.Write("\t" + a[i]);

            Console.WriteLine();



            Console.WriteLine("左边区间Введите левую границу интервала a:");

            ax = Convert.ToInt32(Console.ReadLine());

            do

            {

                Console.WriteLine("右边区间Введите правую границу интервала b, причём b > " + ax + ":");

                bx = Convert.ToInt32(Console.ReadLine());

            }

            while (bx < ax);

            a = a.Where(x => (Math.Abs(x) > ax) || (Math.Abs(x) < bx)).ToArray();

            Console.WriteLine("Массив, сжатый удалением элементов, модуль которых находится в интервале [" + ax + ";" + bx + "]");

            for (i = 0; i < a.Length; ++i)

                if (i == 0) Console.Write(a[i]);

                else Console.Write("\t" + a[i]);



            for (i = 0; i < n; i++)

            {

                if (a[i] > max)

                { max = a[i]; }

            }

            Console.WriteLine("最大数组元素Максимальный элемент массива: " + max);

            for (i = 0; i < n; ++i)

                if (a[i] > 0)

                {

                    elem = a[i];

                    k = i;

                }

            if (elem <= 0) Console.WriteLine("没有正元素Положительных элементов в массиве нет!");

            else Console.WriteLine("最后一个正元素Последний положительный элемент в массиве: " + elem);

            for (i = 0; i < k; i++)

                sum += a[i];

            Console.WriteLine("位于最后一个正元素之前数组的总和: " + sum);

            Console.ReadKey();

        }

    }

}



int n, i, max = 0, elem = 0, sum = 0, k = 0, ax, bx;
            printf("输入数组元素数Введите количество элементов массива:");
            scanf("%d",&n);
            if (n < 1)
                return 0;
            int a[n];
            printf("输入数组元素Введите элементы массива:");
            for (i = 0; i < n; i++)
                scanf("%d",&a[i]);
            max = a[0];
            
            printf("原始数组Исходный массив:");
            for (i = 0; i < n; ++i)
                if (i == 0) printf("%d",a[i]);
                else printf("\t%d" , a[i]);
            printf("\n");
 
 
            printf("左边区间Введите левую границу интервала a:");
            scanf("%d",&ax);
            do
            {
                printf("右边区间Введите правую границу интервала b, причём b > %d:",ax);
                scanf("%d",&bx);
            }
            while (bx < ax);
                 //这里lambda表达式很烦,自己用循环实现去
            printf("Массив, сжатый удалением элементов, модуль которых находится в интервале [%d;%d]",ax,bx);
            for (i = 0; i < sizeof(a); ++i)
                if (i == 0) printf("%d",a[i]);
                else printf("\t%d" , a[i]);
 
 
            for (i = 0; i < n; i++)
            {
                if (a[i] > max)
                { max = a[i]; }
            }
            printf("最大数组元素Максимальный элемент массива: " + max);
            for (i = 0; i < n; ++i)
                if (a[i] > 0)
                {
                    elem = a[i];
                    k = i;
                }
            if (elem <= 0) printf("没有正元素Положительных элементов в массиве нет!");
            else printf("最后一个正元素Последний положительный элемент в массиве:%d " , elem);
            for (i = 0; i < k; i++)
                sum += a[i];
            printf("位于最后一个正元素之前数组的总和:%d " , sum);
            system("pause");
        }