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

Удаление элементов массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Решение интегрального уравнения Вольтерра второго рода. http://www.cyberforum.ru/cpp-beginners/thread356584.html
Есть код программы на C sharp, взятый давно с alglib (сейчас его там нет) : using System; namespace alglib { public class volterra2 { /* This members must be defined by you: static double f(double x)
C++ Нужна консультация по ДМ Все привет. Вообщем задали нам курсовую по Дискр. Мат-ке. Мне досталась тема "Эфективное кодирование. Сжатие текса". Литература есть, почитал (поверхностно) еще приципы работы архиваторов. Используеться метод Шеннона - Фано... Надо будет написать программу с процедурами архивации и разархвации. Но я незнаю на чем написать, мы изучали паскаль и С++. Паскаль мы изучале дольше. Но я незнаю на... http://www.cyberforum.ru/cpp-beginners/thread356575.html
C++ В каждой строке матрицы переставить в обратном порядке элементы
Разработать программу обработки прямоугольной матрицы – двумерного динамического массива. В каждой строке матрицы переставить в обратном порядке элементы, расположенные между последним и максимальным элементами.
Проблема с выводом строки C++
#include<iostream> #include<string> #include<conio.h> #define SIZE 100 using namespace std; class Adress { char fam; char street;
C++ Описать структуру с именем TRAIN http://www.cyberforum.ru/cpp-beginners/thread356529.html
Помогите написать листининг программы, со следующим заданием. Описать структуру с именем TRAIN содержащую след. поля: 1. название пункта назначения 2. номер поезда 3. время отправления Написать программу, выполняющую след. действия: 1. ввод с клавиатуры данных в массив, состоящих из шести элементов типа TRAIN, записи должны быть упорядочены по времени отправления поезда 2 вывод на экран...
C++ Задача Покер Даны 5 целых чисел. Среди них: если одинаковы 5, то вывести "Impossible", иначе если одинаковы 4, то вывести "Four of a Kind", иначе если одинаковы 3 и 2, то вывести "Full House", иначе если есть 5 последовательных, то вывести "Straight", иначе если одинаковы 3, то вывести "Three of a Kind", иначе если одинаковы 2 и 2, то вывести "Two Pairs", иначе если одинаковы 2, то вывести "One... подробнее

Показать сообщение отдельно
Devsety
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 7
26.09.2011, 16:28     Удаление элементов массива
Задание: Удаление элементов из массива оформить в виде функции. Поиск места удаления элемента или группы элементов в некоторых задачах также оформить в виде функции.
Удалить в массиве первую группу из двух подряд идущих нулей.

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
void erase(int *a, int& n, int x){
   for (int i = x; i < n ; ++i)
    swap(a[i], a[i + 1]);
   --n;
}
 
int del(int *a, int& n){
    int x = zero_check(a, n);
   if (a[x+1] == 0)
       return 0;
   do{
       erase(a, n, x);
   }while (a[x] != n);
    erase(a, n, x);
    return 1;
 
int zero_check(int *a, int& n){
   int k = 0, x = -1;
    for (int i = 0; i < n ; ++i)
       if (a[i] == 0){
              x = i;
              break;
           }
 
    return x;
}
}
Два вопроса - 1) где я не вижу ошибку, почему не удаляет; 2) В таком виде ведь если будет массив 1 0 2 3 0 0 4, два нуля не удалятся, т.к. проверка только после первого нуля идет, значит надо создань отдельную функцию поиска 2х нулей? (zero_check нужна в другом задании в той же программе) Или можно что-то сделать с этой?
Заранее спасибо за ответ!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru