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

Нужна еще одна информация - C++

Восстановить пароль Регистрация
 
Sharina
1 / 1 / 0
Регистрация: 14.11.2010
Сообщений: 28
13.02.2011, 14:51     Нужна еще одна информация #1
Как удалить элемент из массива?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2011, 14:51     Нужна еще одна информация
Посмотрите здесь:

C++ Еще одна мизерная прога
C++ Нужна информация
еще одна задача на строковый тип C++
C++ И еще одна задача по С++...
C++ Нужна информация по shlobj.h
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
13.02.2011, 15:06     Нужна еще одна информация #2
Sharina, Никак, в принципе это не возможно, но как вариант, можно цыклически здвинуть на конец и уменшить размер.
Sharina
1 / 1 / 0
Регистрация: 14.11.2010
Сообщений: 28
13.02.2011, 15:15  [ТС]     Нужна еще одна информация #3
У меня работа с файлами, и мне нужно удалить элементы массива которые = 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
30
31
32
33
34
35
#include<stdio.h>
int main()
{FILE*pt_f;
int a,b[20];
int i,n,ku,ni,ki,k,dop[20];
n=20;
ku=0;
pt_f=fopen("dan.txt","w");
for(i=0;i<n;i++)
{
scanf("%6.1d",&a);
fprintf(pt_f,"\n%6.1d",a);
}
fclose(pt_f);
pt_f=fopen("dan.txt","r");
for(i=0;i<n;i++)
{
fscanf(pt_f,"\n%6.1d",a);
printf("%6.1d",a);
}
fclose(pt_f);
pt_f=fopen("dan.txt","w");
for(i=0;i<n;i++)
{
b[i]=a;
}
fclose(pt_f);
for(i=0;i<n-1;i++)
{
if(b[i]==b[1])
dop[i]=b[i]
else
printf("\n ku = %6.1d", ku);
}
{ki=i;
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
13.02.2011, 15:28     Нужна еще одна информация #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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
 
template< typename T >
void delete_element(T **, size_t *, size_t);
 
int main()
{
    size_t size;
 
    std::cout << "Enter size: ";
    std::cin >> size;
 
    int *arr = new int [size];
 
    std::cout << "Enter arr:" << std::endl;
 
    for (size_t i = 0; i < size; ++i)
        std::cin >> arr[i];
 
    int index;
 
    std::cout << "Enter index of deleted element (0 - " << size - 1 << "): ";
    std::cin >> index;
 
    delete_element(&arr, &size, index);
 
    std::cout << "New array: ";
 
    for (size_t i = 0; i < size; ++i)
        std::cout << arr[i] << "  ";
 
    std::cout << std::endl;
 
    return 0;
}
 
template< typename T >
void delete_element(T **arr, size_t *size, size_t delete_index)
{
    T *new_arr = new T [*size - 1];
 
    for (size_t i = 0, j = 0; i < *size; ++i)
        if (i != delete_index)
            new_arr[j++] = (*arr)[i];
 
    delete [] *arr;
    *arr = new_arr;
    --*size;
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
13.02.2011, 15:59     Нужна еще одна информация #5
На крайний случай можно воспользоваться каким-нибудь контейнером
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
13.02.2011, 16:06     Нужна еще одна информация #6
Nameless One, Я бы даже сказал, если пишешь на С++, то в первую очередь надо брать стандартный контейнер.
Sharina
1 / 1 / 0
Регистрация: 14.11.2010
Сообщений: 28
13.02.2011, 16:45  [ТС]     Нужна еще одна информация #7
Я не понимаю о чем вы говорите.....
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
13.02.2011, 16:48     Нужна еще одна информация #8
Классы STL (Standard Template Library) - дек, вектор, список, etc.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
13.02.2011, 16:50     Нужна еще одна информация #9
Nameless One, проблемка одна есть))) Выложенный код всё же на Си написан)))
Nameless One
13.02.2011, 16:53
  #10

Не по теме:

Ну я ж и написал "на крайний случай..." Просто часто бывает, что ТС сам не знает, на каком языке ему писать, а часто пишет на дикой смеси двух языков.

Цитата Сообщение от silent_1991 Посмотреть сообщение
Nameless One, проблемка одна есть))) Выложенный код всё же на Си написан)))
Кстати, к твоему решению это тоже относится

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2011, 16:55     Нужна еще одна информация
Еще ссылки по теме:

и еще одна задача на последовательности C++
Еще одна задача на класс C++
Перенос массива в функцию и еще одна ошибка C++

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

Или воспользуйтесь поиском по форуму:
silent_1991
13.02.2011, 16:55     Нужна еще одна информация
  #11

Не по теме:

Nameless One, когда я писал "решение" , я ещё не видел кода ТСа))) Есть у меня привычка такая - страницы не обновлять)))

Yandex
Объявления
13.02.2011, 16:55     Нужна еще одна информация
Ответ Создать тему
Опции темы

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