Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

Добрый день. Стоит задача передать массив в функцию и удалить из него заданный элемент. В моей программе при выводе массива на экран последний элемент выводится как 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
По умолчанию

Код:
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
По умолчанию

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

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

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить элемент массива 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 - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 17.09.2010 17:46
Удалить элемент массива pavel42 Помощь студентам 14 21.05.2009 08:52