Другие языки программирования и технологии

Переведите программу из Pascal в C#

var
n, i, a, q: integer;
x: array[-30000..30000] of boolean;

begin
q := 0;
write('n=');readln(n);
for i := 1 to n do
begin
read(a);
x[a] := true;
end;
write('Ваш массив без повторяющийхя элементов ');
for i := -30000 to 30000 do if x[i] then begin write(i, ' '); inc(q); end;
writeln;
writeln('Кол-во элементов в новом массиве=', q);
end.
Не надо ЭТО переводить, ужас же сплошной. Напиши задание, сделаем заново.

const int n = 100;
static void Main(string[] args)
{
int[] a = new int[n];
Random rnd = new Random(DateTime.Now.Millisecond);
for (int i=0; i<n; i++)
{
a[i] = rnd.Next(-20, 20);
Console.Write("{0} ", a[i]);
}
Console.WriteLine("\nRepeating more than 2 times:");
Dictionary< int, int > d = new Dictionary();
foreach (int i in a)
if (d.ContainsKey(i))
d[i]++;
else
d.Add(i, 1);
foreach (KeyValuePair< int, int > p in d)
if (p.Value>2)
Console.WriteLine(p.Key);
Console.ReadKey();
AK
Azamat Kenessov
65 874
Лучший ответ
Илья Саменков Массив задается рандомно в диапазоне от -20 до 20. Найти в массиве все числа, которые повторяются более двух раз.
P.S: Увидел добавление в вопрос. Есс-но удалил после этого свой ответ.
Надо было сразу задание писать.
Azamat Kenessov Да, перевод классный... Только это не то, что ему было надо на самом деле.
int a, n, q, i;

q = 0;

n = Convert.ToInt(Console.ReadLine());
for (i=1; i < n; i++)
/// Да уж проще переписать чем эту тарабарщину понимать
using System;

public class Program
{
public static void Main()
{
Random r = new Random();
int len = 40;
int len2 = 0;
int min = -20;
int max = 20;

int[] arr = new int[len];
for(int i=0;i<len;i++)
arr[i] = r.Next(min, max);

Console.Write("Изначальный массив: ");
printArr(arr, arr.GetLength(0));

int[] doubles = new int[len];

for(int i=0;i<len;i++)
{
bool found = false;

for(int j=0;j<len2 && !found;j++)
{
if(arr[i] == doubles[j])
{
found = true;
}
}

if(!found)
{
int fn = 0;
for(int j=i+1;j<len && fn<2;j++)
{
if(arr[i] == arr[j])
{
fn++;
}
}

if(fn>=2)
{
doubles[len2] = arr[i];
len2++;
}
}
}

Console.Write("Элементы, которые повторяются больше двух раз: ");
printArr(doubles, len2);
}

public static void printArr(int[] x, int len = -1)
{
if(len == -1)
{
len = 0;
}

for(int i=0;i<len;i++)
{
Console.Write(x[i] + " ");
}
Console.WriteLine();
}
}
TR
Timka Rx
405