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

Удаление элементов массива - 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...
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. время отправления...
C++ Задача Покер Даны 5 целых чисел. Среди них: если одинаковы 5, то вывести "Impossible", иначе если одинаковы 4, то вывести "Four of a Kind", иначе если одинаковы 3 и 2, то вывести "Full House", иначе если... подробнее

Показать сообщение отдельно
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
26.09.2011, 17:44
Цитата Сообщение от Devsety Посмотреть сообщение
Удалить в массиве первую группу из двух подряд идущих нулей.
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>
using namespace std;
 
int  arr_erase(int val, int*  arr, int size, int all = 0) {
   int* na, *nb;
   int  len;
   int* end = arr + (size - 1);
   do {
          if( *arr == val && *(arr + 1) == val ) {
                for(len = 2; len > 0; len--)
                   for(na = arr, nb = arr + 1; na != end + 1; *na++ = *nb++);
                size -= 2;
                arr  -= 2;
                if(! all)
                    break;
           }
   }  while(++arr != end);
   return size;
}
 
int   main(void) {
    int arr[] = { 0, 100, 0, 30, 0, 0, 1, 0, 0,  23, 0, 11, 0, 0 };
 
    // если последний параметр: 1-удаление всех  элементов, 0 - только первые два
    int size  = arr_erase(0, arr, sizeof(arr)/sizeof(int), 1);
    for(int i = 0; i < size; i++)
           cout << arr[i] << ", ";
    cout.put('\n');
 
    cin.get();
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru