Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
SKIER
11 / 10 / 5
Регистрация: 04.07.2009
Сообщений: 356
1

Запись элементов массива

14.11.2011, 14:10. Просмотров 1633. Ответов 7
Метки нет (Все метки)

Написать метод который копирует элеемнты массива у самого себя.на вход которому приходит

int [] X - массив
i- c какого элемента копировать
j- в какой копировать
n- сколько элементов копировать
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2011, 14:10
Ответы с готовыми решениями:

Запись элементов в экземпляр массива
создать N двумерных массивов. В качестве N выступает количество элементов в...

Преобразование элементов массива и их запись в новый массив
string b = File.ReadAllLines("result.txt"); double res; ...

Поиск одинаковых элементов массива и запись в другой массив
Здравствуйте, проблема в названии темы. У меня записывается только 1-ый...

Записать индексы тех элементов исходного массива, которые больше среднего значения всех элементов массива
Составить новый массив и вывести на экран, в который записать индексы тех...

Количество положительных элементов массива, сумма элементов массива после последнего элемента, равного нулю
В одномерном массиве, который состоит из n действительных элементов,...

7
AlexSilver
30 / 30 / 10
Регистрация: 18.05.2011
Сообщений: 76
14.11.2011, 15:02 2
я немного не понял назначение переменной j и что должен вернуть этот метод, а точнее куда копировать элементы?
0
SKIER
11 / 10 / 5
Регистрация: 04.07.2009
Сообщений: 356
14.11.2011, 15:14  [ТС] 3
есть масив mass, например 30 элементов у него!
нужно например скопировать начиная с 8 го элемента 6 элементов

и вставить их в етот же массив начиная на пример с 18 го элемента

я попытался сделать но что то у меня проблема со вторым циклом

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private static int[] MassCopyMethod(int[] massX, int i, int j, int n)
        {
            bool flag = false;
            for (int p = i; p < massX.Length; p++)
            {
                flag = false;
                if (n == 0) { break; }
                for (int k = j; k < massX.Length; k++)
                {
                    if (flag == false && n != 0)
                    {
                        massX[k] = massX[p];
                        n--;
                        flag = true;
                    }
                    else
                    { break; }
                }
            }
            return massX;
        }
0
AlexSilver
30 / 30 / 10
Регистрация: 18.05.2011
Сообщений: 76
14.11.2011, 15:51 4
чет ты замудрил...сделай задачу в 2-а этапа
1) скопируй необходимые элементы в промежуточный массив
2) скопируй промежуточный массив в исходный, начиная с заданного элемента

C#
1
int[] CopyArray (int[] x, int i, int j, int n)
этап номер 1 :
C#
1
2
3
4
5
6
7
TempArr = new int[n];
        int IndexInTempArr =0;
        for (i, i < i+n;i++)
        {
            TempArr[IndexInTempArr] = x[i];
            IndexInTempArr++;
        }
Этап номер 2:
C#
1
2
3
4
for (int IndexInTempArr = 0; IndexInTempArr < n; IndexInTempArr++)
            {
                x[j+IndexInTempArr] = TempArr[IndexInTempArr];
            }
примерно вот так, по пути можешь расставить всякие проверки
З.ы код не компелировал, возможны погрешности синтаксиса
1
SKIER
11 / 10 / 5
Регистрация: 04.07.2009
Сообщений: 356
14.11.2011, 17:32  [ТС] 5
А зачем промежуточный массив я вот как уже сделал-оцените:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private static int[] MassCopyMethod2(int[] massX, int i, int j, int n)
        {
            for (int k = j; k < massX.Length; k++)
            {
                if (n != 0)
                {
                    massX[k] = massX[i];
                    i++;
                    n--;
                }
                else
                { break; }
            }
 
            return massX;
        }
0
AlexSilver
30 / 30 / 10
Регистрация: 18.05.2011
Сообщений: 76
14.11.2011, 18:09 6
Даже не знаю как тебе это грамотно объяснить.
Допустим, что программа получила следущие данные :
i = 0
n = 10
соответственно ты должен скопировать массив из 10 элементов
теперь, если 0<j<10, то некоторыe элементы скопируются как надо, а некоторые скопируются уже с скопированных
надеюсь был понятен
1
SKIER
11 / 10 / 5
Регистрация: 04.07.2009
Сообщений: 356
15.11.2011, 14:11  [ТС] 7
Мне кажеться ето все просто надо обработать перед выполнением!вобщем вы правы что такая ситуация может возникнуть,этого я не учел.
0
AlexSilver
30 / 30 / 10
Регистрация: 18.05.2011
Сообщений: 76
15.11.2011, 19:46 8
SKIER, конечно можно проверить, но только зачем? в любом случае тебе придется расчитывать все варианты, и если будет как раз, тот случай, который я описал, то дополнительного массива не избежать. Tак что лучше сразу сделать универсальный метод, нежели проверку и расписывать 2 случая по отдельности.
1
15.11.2011, 19:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2011, 19:46

Найти сумму элементов массива, которые делят максимальное значение элементов массива без остатка
Дан целочисленный массив из n элементов. Элементы могут принимать целые...

Массив считает кол-во отрицательных элементов массива и сумму модулей элементов массива
Помогите пожалуйста исправить программу. Массив считает кол-во отрицательных...

Чтение из текстового файла и запись в массив. Разбиение массива строк на 4 массива. Split
Необходимо считать данные из файла в 4 массива. внутри файла текст такого типа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru