Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2011, 19:23   #1
Kristiна
Новичок
Джуниор
 
Регистрация: 26.10.2011
Сообщений: 1
По умолчанию одномерный массив

В одномерном массиве, состоящем из n целых чисел, вычислить:
1) количество элементов, присутствующих в массиве в единственном экземпляре.
2)сумму модулей элементов, стоящих на чётных местах в массиве.
3)Сформировать новый массив из элементов, взятых по одному из каждой группы равных членов заданного массива.
Kristiна вне форума Ответить с цитированием
Старый 26.10.2011, 20:49   #2
val_nnm
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 185
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication
{
    class Program
    {
        private static void SplitSingleMultyElement(int[] source, out int[] single, out int[] multy)
        {
            Dictionary<int, int> temp = new Dictionary<int, int>();
            int countSingle = 0;
            foreach (int element in source)
            {
                int count;
                if (temp.TryGetValue(element, out count))
                {
                    count++;
                }
                else
                {
                    count = 1;
                }
                if (count == 1) { countSingle++; }
                if (count == 2) { countSingle--; }
                temp[element] = count;
            }
            single = new int[countSingle];
            multy = new int[temp.Count - countSingle];
            int singlePos = 0;
            int multyPos = 0;
            foreach (KeyValuePair<int, int> element in temp)
            {
                if (element.Value == 1)
                {
                    single[singlePos] = element.Key;
                    singlePos++;
                }
                else
                {
                    multy[multyPos] = element.Key;
                    multyPos++;
                }
            }
        }
        private static int SumEvenPositions(int[] source)
        {
            int result = 0;
            for (int i = 0; i < source.Length; i += 2) // Здесь есть неоднозначность. Т.к. в разных языках массивы начинаються либо с 0 либо с 1
            {
                result += Math.Abs(source[i]);
            }
            return result;
        }
        static void Main(string[] args)
        {
			Console.Write("Введите количество элементов n=");
			int n = int.Parse(Console.ReadLine());
			int[] A = new int[n];
			for (int i = 0;i<n;i++)
			{
				Console.Write("A["+i.ToString()+"]=");
				A[i] = int.Parse(Console.ReadLine());
			}
			int[] single;
			int[] multy;
			SplitSingleMultyElement(A,out single,out multy);
            Console.WriteLine("количество элементов, присутствующих в массиве в единственном экземпляре=" + single.Length);
            int summ = SumEvenPositions(A);
            Console.WriteLine("сумма модулей элементов, стоящих на чётных местах в массиве="+ summ.ToString());
            for (int i = 0; i < multy.Length; i++)
            {
                Console.WriteLine("multy[" + i.ToString() + "]="+ multy[i].ToString());
            }
            Console.ReadKey();
        }
    }
}
p.s. Каков вопрос - таков ответ
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает."

Последний раз редактировалось val_nnm; 26.10.2011 в 20:52.
val_nnm вне форума Ответить с цитированием
Старый 27.10.2011, 01:33   #3
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Kristiна

В одномерном массиве, состоящем из n целых чисел, вычислить:
1) количество элементов, присутствующих в массиве в единственном экземпляре.


Код:
var arr = new int[n];
// заполнение arr
int ones = arr.GroupBy(p => p).Select(p => p.Count()).Count(p => p == 1);
3)Сформировать новый массив из элементов, взятых по одному из каждой группы равных членов заданного массива.

ХЗ, чё это значит :D но наверное так:

Код:
var arr2 = arr.Distinct().ToArray();
Rififi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Одномерный массив strannik23 Паскаль, Turbo Pascal, PascalABC.NET 7 12.04.2011 22:44
Одномерный массив , двухмерный массив Woxx Паскаль, Turbo Pascal, PascalABC.NET 0 10.09.2010 09:28
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40