Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 08.03.2010
Сообщений: 18
1

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

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

Author24 — интернет-сервис помощи студентам
Никак не разберусь с этой задачей:

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

Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2010, 00:43
Ответы с готовыми решениями:

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

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

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

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

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

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

Цитата Сообщение от niXman Посмотреть сообщение
т.е. массив состоящий из N элементов? или k состоящий из N элементов?
Масив А состоящий из N елементов, а k входит в масив А.
1
Эксперт С++
3211 / 1459 / 74
Регистрация: 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
0 / 0 / 0
Регистрация: 08.03.2010
Сообщений: 18
02.04.2010, 01:54  [ТС] 5
niXman, а это весь текст программы, или его часть? а то тут ниче не вводится, и ниче не выдает, а так работает.
0
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
02.04.2010, 01:55 6
Цитата Сообщение от Коля123 Посмотреть сообщение
тут ниче не вводится, и ниче не выдает
так об этом никто ни просил
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12456 / 7480 / 1753
Регистрация: 25.07.2009
Сообщений: 13,759
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
0 / 0 / 0
Регистрация: 08.03.2010
Сообщений: 18
12.04.2010, 21:53  [ТС] 8
easybudda, насколько я понял тут задача сделана на С, а мы этот язык не изучали пока...Не могли бы Вы переписать его на код С++, заранее благодарен
0
7 / 7 / 3
Регистрация: 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
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
12.04.2010, 22:33 10
Цитата Сообщение от Коля123 Посмотреть сообщение
Не могли бы Вы переписать его на код С++, заранее благодарен
Да и тот код тоже можно рассматривать как код на C++, всё же у C++ почти полная совместимость с C.
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12456 / 7480 / 1753
Регистрация: 25.07.2009
Сообщений: 13,759
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
0 / 0 / 0
Регистрация: 08.03.2010
Сообщений: 18
20.04.2010, 22:21  [ТС] 12
Извините конечно, программа работает, но я НИЧЕГО понять не могу...Просто я привык к другому "виду" языка С++. Вот как например показано в этой теме: Качественные детали .
easybudda, или еще кто-нибудь, нельзя переделать на код такого типа если не трудно, ОЧЕНЬ НУЖНО. Заранее благодарен.
0
frigoshor
23.04.2010, 20:17 13
пожалуйста нарисуйте блок схему буду очень благодарен.
135 / 69 / 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2010, 22:13
Помогаю со студенческими работами здесь

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

Односвязный список: удалить элемент списка, если он чётный и следующий элемент отрицательный и нечётный
Здравствуйте. Задание на односвязные списки: удалить элемент списка, если он чётный и следующий...

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

Удалить каждый K элемент массива пока не останется 1 элемент
Есть задача удалить каждый K элемент массива пока не останется 1 уцелевший. Вот пример ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru