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

Если елементы массива соседние одинаковы то один из них заменяется на 0 а другой увеличиваетмя на один - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дан двухмерный массив целых чисел. Определить сумму элементов больших 30 http://www.cyberforum.ru/cpp-beginners/thread1116036.html
Дан двухмерный массив целых чисел. Определить сумму элементов больших 30
C++ Получить новую матрицу, переставляя блоки размера nxn, используя динамические массивы Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера nxn. http://www.cyberforum.ru/cpp-beginners/thread1116020.html
Обработка динамических массивов C++
Характеристикой столбца целочисленной матрицы назо*вем сумму модулей его отрицательных нечетных эле*ментов. Переставляя столбцы заданной матрицы, распо*ложить их в соответствии с ростом характеристик.
C++ Перегруженные функции. Возвращаемый тип
Добро всем времени суток. Изучаю Р.Лаворе книгу и наткнулся на непонятныий мне аспект. Вот есть код: String(char s) { strcpy_s(str, s); } String operator+=(String ss) { if (strlen(str) + strlen(ss.str) < MAX) {
C++ CodeBlocks. Как правильно подключать библиотеки http://www.cyberforum.ru/cpp-beginners/thread1115967.html
Сделал подключение реализации вот таким способом 1. Project properties -> Build options -> Other options -> добавить флаг "-fopenmp" 2. Linker settings -> "Add" -> "gomp" Собранному приложению нужно находить следующие библиотеки: libgomp-1.dll pthreadGC2.dll но выдает такую ошибку не знаю, может неправильно кладу библиотеки, я их просто пихаю в bin компилятора MinGW
C++ Морской бой народ помогите нарисовать решётку (поле боя ) для морского боя никак не выходит через двухмерный массив подробнее

Показать сообщение отдельно
John Prick
771 / 704 / 128
Регистрация: 27.07.2012
Сообщений: 2,015
Завершенные тесты: 3
12.03.2014, 12:22     Если елементы массива соседние одинаковы то один из них заменяется на 0 а другой увеличиваетмя на один
Тогда твоя программа в принципе делает ерунду.

Вот так будет в соответствии с заданием:
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
/*
1. вводится количество елементов массива
2. вводится сам массив
3. если елементы массива соседние одинаковы,
   то один из них заменяется на 0,
   а другой увеличиваетмя на один
*/
 
#include <iostream>
#include <stdlib.h>
#include <algorithm>
 
int main(void)
{
    setlocale(0, "rus");
 
    int n;
    std::cout << "Введите кол-во элементов массива: ";
    std::cin >> n;
 
    int * arr = new int[n];
    std::cout << "Введите элементы массива: \n";
    int i = 0;
    for (; i < n; ++i)
    {
        std::cout << i + 1 << ": ";
        std::cin >> arr[i];
    }
 
    for (i = 0; i < n - 1; ++i)
    {
        if (arr[i] == arr[i + 1])
        {
            arr[i] += 1;
            arr[i + 1] = 0;
        }
    }
 
    std::cout << "\nИзменённый массив: \n";
    std::copy(arr, arr + n, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    system("pause");
    return 0;
}
Добавлено через 5 минут
Или использую стандартную библиотеку:
C++
1
2
3
4
5
6
7
8
9
10
11
    int * j = arr;
    while (j != arr + n)
    {
        j = std::adjacent_find(j, arr + n);
        if (j != arr + n)
        {
            *j += 1;
            ++j;
            *j = 0;
        }
    }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru