Форум программистов, компьютерный форум CyberForum.ru

Удалить элементы с array - C++

Восстановить пароль Регистрация
 
Ann Joker
 Аватар для Ann Joker
3 / 3 / 1
Регистрация: 05.10.2011
Сообщений: 86
17.09.2012, 16:03     Удалить элементы с array #1
Нужно удалить все элементы статичного массива. При чем поочередно(не все сразу и рандомно)
Попробовала так, но получилось не совсем правильно.
Нельзя же удалить полностью элемент, то есть после него в любом случае остается ноль?
Помогите доработать код.

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 <iostream>
 
using namespace std;
 
int main(){
    int k;
    int n = 9;
    int array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    
    for (int i = 0; i < 9; i++){
        k = rand() % n;
    
        if(k!=n){
            for(int q=k;q<9-k;q++)
                array[q]=array[q+1];
            array[n]=0;
        }
    
        else
            array[k] = 0;
        n--;
        cout << endl;
        
        for (int j = 0; j < 9; j++)
            cout << array[j];
    }
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2012, 16:03     Удалить элементы с array
Посмотрите здесь:

C++ Удалить элементы в массиве.
C++ если массив не является знакочередующимся,то удалить из массива все положительные числа,в противном случае-удалить отрицательные элементы.после удален
C++ Дано: a:array[1…n] - удалить и вставить элемент
Удалить элементы массива C++
C++ дописать ( Из массива А удалить все элементы, которые встречаются в В ровно 2 раза. Из В переписать в С те элементы, которые совпадают с оставшимися)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
17.09.2012, 16:10     Удалить элементы с array #2
Цитата Сообщение от Ann Joker Посмотреть сообщение
Нельзя же удалить полностью элемент, то есть после него в любом случае остается ноль?
Нельзя удалить элемент. Можно занулить.

Если используете необычные реализации массивов типа связных списков, то можно удалить.
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
17.09.2012, 16:14     Удалить элементы с array #3
помогу накинуть мысль, если уж статический массив.
делать
C++
1
2
3
4
5
6
for ( int i = 0; i < array.size() -1; i ++ ) {
    array[i] = array[i+1];
        for ( int j = 0; j < array.size() - 1 - i; j ++ )
             std::cout << array[j];
   std::cout << std::endl;
 }
а вообще, можно юзать динамический массив. там можно забабахать прикольное удаление )
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6172 / 2901 / 284
Регистрация: 04.12.2011
Сообщений: 7,722
Записей в блоге: 3
17.09.2012, 16:16     Удалить элементы с array #4
Ann Joker, Вы хотите обнулить элемент и сдвинуть остальные так, чтобы следующий занял его место? Уточните.
Цитата Сообщение от Ann Joker Посмотреть сообщение
Нужно удалить все элементы статичного массива. При чем поочередно(не все сразу и рандомно)
Попробовала так, но получилось не совсем правильно.
Нельзя же удалить полностью элемент, то есть после него в любом случае остается ноль?
Помогите доработать код.

C++
1
2
3
4
            k = rand() % n;
            if(k!=n){
            for(int q=k;q<9-k;q++)
                array[q]=array[q+1];// при k=0 q пробежит до 9, получим array[9]=array[10] ?!
У-упс - опоздал, похоже...
Ann Joker
 Аватар для Ann Joker
3 / 3 / 1
Регистрация: 05.10.2011
Сообщений: 86
18.09.2012, 22:04  [ТС]     Удалить элементы с array #5
спасибо большое, нашла свою ошибку. как всегда, в основном, невнимательность.
еще раз благодарю.
Yandex
Объявления
18.09.2012, 22:04     Удалить элементы с array
Ответ Создать тему
Опции темы

Текущее время: 08:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru