Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Луиза
0 / 0 / 0
Регистрация: 20.06.2011
Сообщений: 9
#1

Массив удаление. - C++

20.06.2011, 13:59. Просмотров 668. Ответов 4
Метки нет (Все метки)

Помогите решить эти 2 задачки, мне это не как не дается.
1) Сформировать одномерный массив целых чисел, используя датчик случайных чисел.
2) Распечатать полученный массив.
3) Удалить 5 первых элементы массива.
4) Добавить в конец массива 3 новых элемента.
5) Распечатать полученный массив.

1. Написать функцию, проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными элементами, удаленная строка заполняется 0 и переносится в конец массива .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2011, 13:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив удаление. (C++):

двумерный массив, удаление. - C++
Не могу понять как удалить элемент из двумерного массива. Пожалуйста подскажите, в долгу не останусь. Язык си.

Массив с++ (удаление простых чисел) - C++
Нужно написать програмку : Задан массив Z(k) целых чисел. Записать все элементы массива Z в массив Y, записав числа в обратном порядке...

Динамический массив, запись и удаление - C++
Помогите решить задачу нужно создать динамический массив записать в него работника, выйти в меню и записать опять нового, выйти в меню...

Массив и Удаление элементов вектора - C++
1)Найти произведение элементов, расположенных между первым и вторым нулевым элементами. 2)Удалить из массива элемент, расположенный после...

Массив классов поиск удаление и добавление - C++
Задание: Опишите класс "Событие" (Событие и дата). Опишите класс "События недели", как совокупность событий с операциями добавления...

Динамический массив, удаление и вставка элементов - C++
Имеется класс пользователя. Нужно создать динамический массив. MyClass **arr; Инициализация: arr = new MyClass*; Собственно вопрос:...

4
VASSUV
MiThEoN
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 418
Записей в блоге: 2
Завершенные тесты: 1
20.06.2011, 14:09 #2
первая
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>     
#include <cstdlib>  
using namespace std;   
#define CONST 15
int main()
{
    setlocale( 0,"russian");
    int i;
    int a[CONST];
    int n = CONST;
    /*1*/
    for(i = 0; i < n; i ++ )
         a[i] = rand();
 
    /*2*/      
    for(i = 0; i < n; i ++ )
         cout<<a[i]<<"  ";
    cout<<endl;
 
    /*3*/
    for(i = 5; i < n; i ++)
        a[i-5] = a[i];
    n -= 5;
 
    /*4*/
    for(i = n; i < n + 3; i++)
        a[i] = rand();
    n +=3;
             
    /*5*/      
    for(i = 0; i < n; i ++ )
         cout<<a[i]<<"  ";
    system("pause");
    return 0; 
}
1
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
20.06.2011, 14:55 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
void main(void) {
    int  arr[15];
    int  i = 0;
    int size = sizeof(arr) / sizeof(int);
 
    for(i = 0; i < size; i++)
        arr[i] = 5 + rand() % 20;
 
 
    for(i= 0; i < size; i++)
        printf("%d, ", arr[i]);
 
    puts("\ndelete first - 5 element");
 
    int del = 5;
    memcpy(arr, arr +del, (size - del) * sizeof(int));
    size -= 5;
 
    for(i = 0; i < size; i++)
        printf("%d, ", arr[i]);
 
    puts("\nadditem-3 new element");
 
    int _new[] = { 2000, 3000, 4000 };
    memcpy(arr + size, _new, sizeof(_new));
    size += 3;
    for(i = 0; i < size; i++)
        printf("%d, ", arr[i]);
}
1
Луиза
0 / 0 / 0
Регистрация: 20.06.2011
Сообщений: 9
20.06.2011, 15:39  [ТС] #4
Супер!! Спасибо!!!Спасибо!!!
0
voral
488 / 468 / 79
Регистрация: 16.03.2008
Сообщений: 2,215
20.06.2011, 16:10 #5
Цитата Сообщение от xAtom Посмотреть сообщение
C
1
2
3
4
5
...
int del = 5;
memcpy(arr, arr +del, (size - del) * sizeof(int));
size -= 5;
...
Интересно. Как к этому преподаватель отнесется. Визуально все выглядит правильно. Фактически Ни чего не удалено. Т.е. при профильном обучении это плохо - память остается неосвобожденной в то время когда не нуна Просто перезаписано и в переменной сохранена правая граница массива. С таким же успехом можно было бы сделать так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#define MAXSIZE 15
void main(void) {
        int  arr[MAXSIZE+3];
        int  i = 0;
        int left=0,right=MAXSIZE-1;
 
        for(i = 0; i < right; i++)
                arr[i] = 5 + rand() % 20;
 
 
        for(i= left; i < right; i++)
                printf("%d, ", arr[i]);
 
        puts("\ndelete first - 5 element");
 
        left=5;
        for(i= left; i < right; i++)
                printf("%d, ", arr[i]);
 
        puts("\nadditem-3 new element");
 
        for(i = 0; i < 3; i++)
                arr[i+right+1] = 5 + rand() % 20;
            
        right+=3;
        for(i= left; i < right; i++)
                printf("%d, ", arr[i]);
}
А если вывод на экран убрать в функцию. А последние 3 элемента добавить в первом цикле фактически. То программа будет весьма короткая, визуально выдвавать правильный результат.

Добавлено через 4 минуты
Т.е. если правильность проверяют по отображенным на экране, то прокатит и так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#define MAXSIZE 15
int  arr[MAXSIZE+3];
void printArr(int begin, int end)
{
    int  i;
    for(i= begin; i < end; i++)
        printf("%d, ", arr[i]);
}
void main(void)
{
    int  i;
    for(i = 0; i < MAXSIZE; i++)
        arr[i] = 5 + rand() % 20;
 
    printArr(0,MAXSIZE);
 
    puts("\ndelete first - 5 element");
    printArr(5,MAXSIZE);
 
    puts("\nadditem-3 new element");
    printArr(5,MAXSIZE+3);
}
0
20.06.2011, 16:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2011, 16:10
Привет! Вот еще темы с ответами:

Одномерный массив. Удаление элементов с четными номерами - C++
Дан целочисленный массив размера N (&gt; 2). Удалить из массива все элементы с четными номерами (2, 4, …). Условный оператор не использо- ...

Сохранение строки в массив и удаление повторяющихся элементов массива - C++
Нужно сделать так, что бы строка занасилась в массив без повтора элементов.(к примеру строка: &quot;Травка зеленеет, солнышко блестит.&quot; , а в...

Одномерный динамический массив, передача в функции, добавление и удаление элемента - C++
Разбираю одномерные динамические массивы. Пока всё просто, пока и не возникает вопросов. Массив объявил, проинициализировал, сгенерировал и...

Реализовать добавление/удаление элементов в массив объектов типа PhoneBook - C++
Есть небольшая задача создать телефонную книгу с возможностью записи контакта. выводом контактов на экран. и удалением всех контактов ...


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

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

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