Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Вопросы начинающих программистов
Перезагрузить страницу Как сделать, чтобы все элементы массива, встречающиеся более 2х раз были удалены
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Ginger_93 Ginger_93 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.01.2012
По умолчанию Как сделать, чтобы все элементы массива, встречающиеся более 2х раз были удалены - 16.01.2012, 20:03

Как сделать, чтобы все элементы массива, встречающиеся более 2х раз были удалены и выводился размер полученного массива с содержимым
csharp Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void vvod(int N, int[] a)
        {
            Random n = new Random();
            for (int i = 0; i < N; i++)
                a[i] = n.Next(1, 7);:frown:
        }
        static void vivod(int N, int[] a)
        {
            for (int i = 0; i < N; i++)
                Console.Write(a[i] + " ");
        }
        static int delete(int N, int[] a)
        {
            int z = 1;
            for (int i = 0; i < N - z; i++)
                if (a[i] == a[i + 1])
                {
                    for (int k = i; k < N - z; k++)
                    {
                       a[k] = a[k + 1];
                    }
                    z += 1;
                }
            return z;
        }
        static void Main(string[] args)
        {
            int N, N2;
            Console.WriteLine("Введите размер массива ");
            N = Int32.Parse(Console.ReadLine());
            int[] a = new int[N];
            vvod(N, a);
            vivod(N, a);
            Console.WriteLine();
            N2 = N - delete(N, a) + 1;
            vivod(N2, a);
            Console.ReadKey();
        }
    }
}
Ответить с цитированием
  (#2 (permalink)) Старый
Freddis Freddis вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 21.01.2012
По умолчанию 21.01.2012, 16:57

Можно отсортировать массив по значениям и удалить одинаковые элеменеты, которые находятся рядом пройдя по массиву еще раз.

В некоторых языках (PHP в частности)эта задача выполняется в одну строку, но затраты куда большие, чем собственная функция.

array_diff($arr,array_diff_assoc($arr,array_unique ($arr)));

array_unique() - уникальные элементы массива
array_diff_assoc() - расхождение массивов с учетом ассоциативных ключей
array_diff() - расхождения массивов по значениям

Последний раз редактировалось Freddis; 21.01.2012 в 17:15
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать,чтобы все переключатели не были сразу включены imported_Ванек Visual Basic 2 25.04.2011 23:16
Нужно отсортировать элементы так, чтобы сначала в списке были отрицательные числа Infinity1 Lisp 3 11.10.2010 10:20
Как сделать чтобы были видны песочные часы когда что-то считается SidorovaNata .NET 5 16.03.2009 19:24
Переупорядочить элементы списка так, чтобы вначале шли все отрицательные элементы imported_Amber Lisp 2 15.05.2008 00:35
ToolBar1 как в данном компоненте сделать чтобы кнопки были по центру †Strannik† Delphi 1 23.11.2007 19:42
Как переделать функцию , чтобы исходные данные были массивом volonter Lisp 0 12.12.2006 14:24
Как сделать, чтобы элементы управления приложения SDI принимали русский текст Василий Теркин Visual C++ 5 31.05.2006 09:48
Можно ли в Делфи сделать чтобы элементы базы данных были видны в ListBox SilentmaN Вопросы начинающих программистов 3 26.08.2005 09:11
Как сделать, чтобы загружать константы сразу во все элементы одной строкой Poker С/С++ 4 22.06.2005 16:14
Что делать чтобы в консольных приложениях надписи были на английском лисс Вопросы начинающих программистов 3 05.06.2004 09:00
Как настроить шрифт, чтобы все буквы были одинаковой ширины Anonymous Visual C++ 8 25.01.2004 20:32
Как сделать чтобы пару символов сторки были например Italic Anonymous Delphi 1 21.11.2003 19:43



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов