Удаление элементов из массива - C# (181812)
Формулировка задачи:
Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их первые вхождения.
Суть:
Ругается на фрагмент
int n,i,j,k;
Console.Write("n=");
n = Convert.ToInt32(Console.ReadLine());
int [] a = new int[n];
Console.WriteLine("Исходный массив:");
for( i=0; i<n; i++) {
Console.Write("Элемент",a[i]);
a[i]= Convert.ToInt32(Console.ReadLine());}
Console.WriteLine();
do{j=i+1;
do {
if (a[j] == a[i])
{
for (k = j; k < n - 1; k++) { a[k] = a[k + 1]; n = n - 1; }
}
else j = j + 1;
} while (j <= n);
i = i + 1;
}
while (i<=n);
Console.WriteLine("Массив без повторений");
for (i = 1; i < n; i++) { Console.Write("{0}", a[i]); }
Console.ReadKey();if (a[j] == a[i])
Решение задачи: «Удаление элементов из массива»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int n, i, j, k, c;
Console.Write("Кол-во элементов n= ");
n = Convert.ToInt32(Console.ReadLine());
int[] a = new int[n];
Console.WriteLine("Исходный массив:");
for (i = 0; i < n; i++)
{
Console.Write("Элемент ", a[i]);
a[i] = Convert.ToInt32(Console.ReadLine());
}
j = 1;
for (i = 1; i < n; i++)// сравнение каждого отдельно взятого элемента по отдельности
{
for (c = 2; c <= n; c = c + i)/*пробегаем по каждому элементу*/ { if (a[j] == a[i - 1]) { for (k = j; k < n - 1; k++) { a[k] = a[k + 1]; } n = n - 1; } else j = j + 1; }//формируем новый массив уменьшая последовательно кол-во повторяющихся элементов
j = i+1;
}
Console.WriteLine("Массив без повторений");
for (i = 0; i < n; i++) { Console.Write("{0}", a[i]); }
Console.ReadKey();
}
}
}