Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 15.05.2013, 18:45   #1
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
Репутация: 10
По умолчанию Удалить элемент массива

Добрый день. Стоит задача передать массив в функцию и удалить из него заданный элемент. В моей программе при выводе массива на экран последний элемент выводится как 0. Можно ли сделать так, чтобы он не выводился вообще? Или все же с точки зрения удаления элемента из массива задача составлена правильно?

Код:
#include <iostream>

using namespace std;

const int SIZE = 10;

void del(int *, int);

int main()
{
	setlocale(LC_ALL,"Russian");
	int arr[SIZE] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
	cout << "Исходный массив: ";
	for(int i = 0; i < SIZE; i++)
	{
		cout << arr[i] << " ";
	}
	del(arr, 4);
	cout << endl;
	cout << "Полученный массив: ";
	for(int i = 0; i < SIZE; i++)
	{
		cout << arr[i] << " ";
	}
	cout << endl;
	system("pause");
	return 0;
}

void del(int *ar, int el)
{
	for(int i = el; i < SIZE - 1; i++)
	{
		ar[i] = ar[i + 1];
	}
	ar[SIZE - 1] = '\0';
}
Dima-War вне форума   Ответить с цитированием
Старый 15.05.2013, 18:47   #2
Fanyuus
Форумчанин
 
Аватар для Fanyuus
 
Регистрация: 07.05.2011
Сообщений: 169
Репутация: 4
По умолчанию

Код:
cout << "Полученный массив: ";
	for(int i = 0; i < SIZE-1; i++)
	{
		cout << arr[i] << " ";
	}
Наверное, так))
Fanyuus вне форума   Ответить с цитированием
Старый 15.05.2013, 18:49   #3
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
Репутация: 10
По умолчанию

Ну... Это, скажем так, немного нечестно Я думаю должен быть другой способ.
Dima-War вне форума   Ответить с цитированием
Старый 15.05.2013, 19:05   #4
Fanyuus
Форумчанин
 
Аватар для Fanyuus
 
Регистрация: 07.05.2011
Сообщений: 169
Репутация: 4
По умолчанию

Dima-War, только что изучала этот вопрос: у обычного массива (int mas[4]), да и динамического тоже, нельзя добавить и удалить элементы очень-очень честным способом. Можно завести новый динамический массив, который будет на 1 меньше первоначального, который будет "честным", но это хорошо, когда элементов 1000, а если 100 000? (ну это так, соображения только) ))))

Если хотите честным - учите вектор. Лёгкая вещь, правда. Легче чем списки, чуть-чуть сложнее массивов. Легче динамических, ИМХО))

Последний раз редактировалось Fanyuus; 15.05.2013 в 19:54.
Fanyuus вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить элемент массива viks1 Общие вопросы Delphi 5 02.04.2013 13:35
Удалить элемент из массива структуры KOMPNET Помощь студентам 1 07.06.2012 11:30
Как удалить элемент массива? БалаШагаЛ PHP 1 28.01.2012 20:46
удалить элемент из массива dron-k Assembler 0 17.09.2010 17:46
Удалить элемент массива pavel42 Помощь студентам 14 21.05.2009 08:52


00:06.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.