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

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

Войти
Регистрация
Восстановить пароль
 
Коля123
0 / 0 / 0
Регистрация: 08.03.2010
Сообщений: 18
#1

Удалить k - ый элемент - C++

02.04.2010, 00:43. Просмотров 864. Ответов 14
Метки нет (Все метки)

Никак не разберусь с этой задачей:

Удалить k - ый элемент массива A, состоящий из N элементов.

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

Структура "Информация": - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить элемент перед элемент - C++
Структура "Информация": - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить...

Двусвязный список - Добавить элемент после заданного, удалить заданный элемент - C++
Реализуйте списочную структуру в виде класса. работа состоит из двух частей: из класса (структуры, алгоритма) и из тестирующего кода. ...

Как удалить нужный элемент из списка или заменить этот элемент на другой? - C++
Доброго времени суток, господа! Есть список: list<double> list1; Есть возможность добавить в начало или в конец списка елементы:...

Динамический двусвязный список (операции: добавить элемент после данного, удалить данный элемент …) - C++
реализовать Динамический двусвязный список (операции: добавить элемент после данного, удалить данный элемент …). используя: class List...

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

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

14
niXman
Эксперт С++
3139 / 1451 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
02.04.2010, 01:00 #2
ЯП какой?
массив какого типа?

Добавлено через 2 минуты
Цитата Сообщение от Коля123 Посмотреть сообщение
Удалить k - ый элемент массива A, состоящий из N элементов.
т.е. массив состоящий из N элементов? или k состоящий из N элементов?
1
yura`
11 / 8 / 0
Регистрация: 09.02.2010
Сообщений: 107
02.04.2010, 01:44 #3
Цитата Сообщение от niXman Посмотреть сообщение
массив какого типа?
та любого, чтоб просто было удобно с ним работать.

Цитата Сообщение от niXman Посмотреть сообщение
т.е. массив состоящий из N элементов? или k состоящий из N элементов?
Масив А состоящий из N елементов, а k входит в масив А.
1
niXman
Эксперт С++
3139 / 1451 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
02.04.2010, 01:47 #4
C++
1
2
3
4
5
6
7
8
9
10
11
#include <vector>
int main() {
   int k = 2;
   std::vector<int> vec;
   vec.push_back(0);
   vec.push_back(1);
   vec.push_back(2);
   vec.push_back(3);
 
   vec.erase(vec.begin()+k);
}
0
Коля123
0 / 0 / 0
Регистрация: 08.03.2010
Сообщений: 18
02.04.2010, 01:54  [ТС] #5
niXman, а это весь текст программы, или его часть? а то тут ниче не вводится, и ниче не выдает, а так работает.
0
niXman
Эксперт С++
3139 / 1451 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
02.04.2010, 01:55 #6
Цитата Сообщение от Коля123 Посмотреть сообщение
тут ниче не вводится, и ниче не выдает
так об этом никто ни просил
0
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,850
02.04.2010, 02:47 #7
C:
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 <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
/* #include <windows.h> для отображения русских букв в винде */
 
int main(void){
    int *arr, size, pos;
    
    /* для отображения русских букв в винде
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    */
    
    srand(time(NULL));
    
    printf("Количество элементов: ");
    if ( scanf("%d", &size) != 1 || size < 1 ){
        fprintf(stderr, "Плохое значение или ошибка ввода!\n");
        exit(1);
    }
    if ( ( arr = (int*)malloc(size * sizeof(int)) ) == NULL ){
        fprintf(stderr, "Ошибка памяти!\n");
        exit(1);
    }
    printf("Массив:\n");
    for ( pos = 0; pos < size; ++pos )
        printf("%3d", ( arr[pos] = rand() % 100 ));
    
    printf("\nИндекс удаляемого элемента (начиная с 0): ");
    if ( scanf("%d", &pos) != 1 || pos < 0 || pos > size - 1 ){
        fprintf(stderr, "Плохое значение или ошибка ввода!\n");
        exit(1);
    }
    if ( pos < size - 1 )
        memmove(arr + pos, arr + pos + 1, sizeof(int) * (size - pos - 1));
    if ( ( arr = (int*)realloc(arr, --size * sizeof(int)) ) == NULL ){
        fprintf(stderr, "Ошибка памяти!\n");
        exit(1);
    }
    
    printf("Массив без удалённого элемента:\n");
    for ( pos = 0; pos < size; ++pos )
        printf("%3d", arr[pos]);
    printf("\n");
    
    free(arr);
    exit(0);
}
Добавлено через 2 минуты
Поправил, теперь всё работает.
1
Коля123
0 / 0 / 0
Регистрация: 08.03.2010
Сообщений: 18
12.04.2010, 21:53  [ТС] #8
easybudda, насколько я понял тут задача сделана на С, а мы этот язык не изучали пока...Не могли бы Вы переписать его на код С++, заранее благодарен
0
DEUCE
7 / 7 / 2
Регистрация: 11.04.2010
Сообщений: 25
12.04.2010, 22:25 #9
Цитата Сообщение от Коля123 Посмотреть сообщение
Удалить k - ый элемент массива A, состоящий из N элементов.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream.h>
void main()
{ int i;
  double n, k;
  cout<<"vvedite koli4 elementov massiva: \n";
  cin>>n;
  cout<<"nomer udalyaemogo elementa \n";
  cin>>k;
  k--;
  if (n>k){
  double *A=new double [n];
  cout<<" Vvedite massiv: \n";
  for(i=0; i<n; i++){ cin>>A[i];}
  for (i=k+1; i<n; i++) A[i-1]=A[i];
  for (i=0; i<n-1; i++)
  cout<<A[i]<<" ";}
}
1
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,199
Завершенные тесты: 1
12.04.2010, 22:33 #10
Цитата Сообщение от Коля123 Посмотреть сообщение
Не могли бы Вы переписать его на код С++, заранее благодарен
Да и тот код тоже можно рассматривать как код на C++, всё же у C++ почти полная совместимость с C.
1
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,850
12.04.2010, 23:00 #11
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
    
/*
*   Удалить k - ый элемент массива A, состоящий из N элементов.
*/
 
int main(){
    int cnt, tmp;
    std::cout << "Number of elements: ";
    std::cin >> cnt;
    std::vector<int> vec;
    while ( cnt-- ){
        std::cout << "Value (" << cnt << " left): ";
        std::cin >> tmp;
        vec.push_back(tmp);
    }
    std::cout << "Index of element to remove: ";
    std::cin >> cnt;
    if ( cnt < 0 || cnt > vec.size() - 1 ){
        std::cerr << "Wrong index!" << std::endl;
        return 1;
    }
    vec.erase(vec.begin() + cnt);
    std::cout << "Array without removed element:" << std::endl;
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    
    return 0;
}
1
Коля123
0 / 0 / 0
Регистрация: 08.03.2010
Сообщений: 18
20.04.2010, 22:21  [ТС] #12
Извините конечно, программа работает, но я НИЧЕГО понять не могу...Просто я привык к другому "виду" языка С++. Вот как например показано в этой теме: Качественные детали .
easybudda, или еще кто-нибудь, нельзя переделать на код такого типа если не трудно, ОЧЕНЬ НУЖНО. Заранее благодарен.
0
frigoshor
23.04.2010, 20:17 #13
пожалуйста нарисуйте блок схему буду очень благодарен.
Radjuk
134 / 68 / 12
Регистрация: 10.10.2009
Сообщений: 187
23.04.2010, 20:36 #14
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
50
51
52
53
54
55
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
#include <string.h>
 
void main()
{
 clrscr();
 int n,i,m;
 cout<<"Введите размерность массива:";
 cin>>n;
 if(n == 0)
  {
    cout<<"Ошибка розмерности!";
    getch();
    exit(0);
   }
 int *a=(int*)malloc(sizeof(int));
 for(i=0;i<n;i++)
  {
   a[i]=random(100);
   cout<<a[i]<<" ";
  }
 
 cout<<"\n‚Введите индекс елемента который надо удалить:";
 cin>>m;
 
 for(i=0;i<n;i++)
  {
   if(m-1>=n || m-1<=0)
    {
     cout<<"Ошибка индекса!";
     getch();
     exit(0);
    }
   else
    {
     for(i=m-1;i<n;i++)
      {
       int temp = a[i];
       a[i] = a[i+1];
       a[i+1] = temp;
      }
     n--;
    }
  }
  for(i=0;i<n;i++)
   {
    cout<<a[i]<<" ";
   }
 free(a);
 getch();
}
0
frigoshor
23.04.2010, 22:13 #15
Нарисуйте блок схему на эту задачу пожалуйста я в долгу не останусь
23.04.2010, 22:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2010, 22:13
Привет! Вот еще темы с ответами:

Удалить первый нулевой элемент массива и добавить после каждого чётного элемента особый элемент - C++
Здравствуйте! Имеется такая задача: 1) Сформировать одномерный массив целых чисел, используя датчик случайных чисел. 2) Распечатать...

Удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером - C++
Структура &quot;Информация&quot;: - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить...

Сформировать двунаправленный список. Удалить из него элемент с заданным ключом, добавить элемент с указанным номером - C++
Записи в линейном списке содержат ключевое поле типа *char(строка символов). Сформировать двунаправленный список. Удалить из него элемент с...

Удалить первый положительный элемент массива; вставить новый элемент перед первым максимальным элементом - C++
Дан целочисленный массив размера N. Как удалить первый положительный элемент ? Как вставить новый элемент перед первым максимальным...


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

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

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