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

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

Войти
Регистрация
Восстановить пароль
 
Ann Joker
3 / 3 / 1
Регистрация: 05.10.2011
Сообщений: 86
#1

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

17.09.2012, 16:03. Просмотров 413. Ответов 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
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
Посмотрите здесь:

Дано: a:array[1…n] - удалить и вставить элемент - C++
Дано: a:array of real;p:real;k:integer;(a&lt;=a&lt;=⋯&lt;=a,0&lt;k≤n). Удалить из a элемент с номером k (т.е. a) и вставить элемент, равный p, так,...

если массив не является знакочередующимся,то удалить из массива все положительные числа,в противном случае-удалить отрицательные элементы.после удален - C++
задан массив Х целых чисел. если массив не является знакочередующимся,то удалить из массива все положительные числа,в противном...

дописать ( Из массива А удалить все элементы, которые встречаются в В ровно 2 раза. Из В переписать в С те элементы, которые совпадают с оставшимися) - C++
нужно чтоб на экран еще выводило перед новым массивом А, числа,которые повторяются в массиве В 2 раза. и перед С тоже чтоб выводило на...

Удалить элементы массива - C++
Удалить максимальный и минимальный элементы массива. с++

Удалить элементы массива - C++
Удалить элементы, значения котоpых меньше, чем количество их повтоpов в массиве Помогите разобраться пожалуйста #include &quot;stdafx.h&quot; ...

Удалить элементы из словаря - C++
Нужно удалить элементы из словаря с помощью erase

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
17.09.2012, 16:10     Удалить элементы с array #2
Цитата Сообщение от Ann Joker Посмотреть сообщение
Нельзя же удалить полностью элемент, то есть после него в любом случае остается ноль?
Нельзя удалить элемент. Можно занулить.

Если используете необычные реализации массивов типа связных списков, то можно удалить.
co6ak
Кошковед
407 / 500 / 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
Комп_Оратор)
Эксперт по математике/физике
6444 / 3083 / 306
Регистрация: 04.12.2011
Сообщений: 8,491
Записей в блоге: 4
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] ?!
У-упс - опоздал, похоже...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2012, 22:04     Удалить элементы с array
Еще ссылки по теме:

Удалить элементы из массива - C++
Задание: Из массива удалить элементы, стоящие после максимального и имеющие значение меньше среднего арифметического всех элементов...

Удалить элементы в массиве. - C++
Задача такова: &quot;В неупорядоченном массиве K есть совпадающие элементы. Из каждой группы одинаковых элементов оставить один, удалив...

Удалить элементы из структуры - C++
Дали вот такое задание на С++ 1. сделать Структура &quot;Владелец автомобиля&quot;: - Фамилия, имя, отчество; - Номер автомобиля; - Номер...

Удалить минимальные элементы массива - C++
Удалить все минимальные элементы. Использовать дополнительные массивы нельзя


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

Или воспользуйтесь поиском по форуму:
Ann Joker
3 / 3 / 1
Регистрация: 05.10.2011
Сообщений: 86
18.09.2012, 22:04  [ТС]     Удалить элементы с array #5
спасибо большое, нашла свою ошибку. как всегда, в основном, невнимательность.
еще раз благодарю.
Yandex
Объявления
18.09.2012, 22:04     Удалить элементы с array
Ответ Создать тему
Опции темы

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