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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Aleksashka
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 38
#1

Дан целочисленный массив размером N. Преобразовать массив, увеличив длину каждой серии на один элемент - C++

19.10.2012, 10:20. Просмотров 997. Ответов 1
Метки нет (Все метки)

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
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int n;
int k=0;
int p=0;
int l=0;
int a[20];
cout<<"V-te razmer massiva: ";
cin>>n;
cout<<"V-te elementy massiva: ";
for (int i=0; i<n; i++)
{
cin>>a[i];
}
int i=0;
while(i<n)
{
if (a[i]==a[i++])
{
k=i;
p=a[i];
i++;
} 
a[k+2]=a[k+1];
a[k+1]=p;
}
for (int i=0; i<n+1; i++)
{
cout<<a[i]<<" ";
}
cin.get();cin.get();
return 0;
}
Не работает, если размер массива четное число (4,6,8...), то есть серия увеличивается на один элемент, а элемент, котороый стоял на этой позиции не переносится в ячейку a[k+2]
Пример

n=4
1 2 2 3

Выводит:
1 2 2 2
Вместо
1 2 2 2 3
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2012, 10:20     Дан целочисленный массив размером N. Преобразовать массив, увеличив длину каждой серии на один элемент
Посмотрите здесь:

Преобразовать массив, увеличив первую/последнюю/все серии наибольшей длины на один элемент - C++
Вот задача Дан целочисленный массив размера N. Преобразовать массив, увеличив первую1|последнюю2|все3 серии наибольшей длины на один...

Преобразовать массив, увеличив его первую серию наибольшей длины на один элемент - C++
Ребятки, кому не сложно выручите с задачкой) Дан целочисленный массив размера N. Преобразовать массив, увеличив его первую серию...

Дан целочисленный двумерный массив. В каждой строке выбрать максимальный и минимальный элемент - C++
Дан целочисленный двумерный массив, в каждой строке выбрать максимальный и минимальный элемент. Записать минимальный на основную диагональ,...

Преобразовать массив удвоив длину его серии - C++
Дано целое число K (&gt; 0) и целочисленный массив размера N. Преобразовать массив, удвоив длину его серии с номером K. Если серий в массиве...

Дан целочисленный двумерный массив размером MxN - C++
Ребят помогите написать программу на С++.В долгу не останусь. Дан целочисленный двумерный массив размером MxN, а) заменить ...

Дан массив A[20] и B[10] после каждой пары элемента массива A вставить один элемент массива B - C++
Дан массив A и B после каждой пары элемента массива A вставить один элемент массива B. На языке С++

Преобразовать целочисленный массив, прибавив к нечетным числам первый элемент - C++
Помогите пожалуйста!!!Дан целочисленный массив. Преобразовать его, прибавив к нечетным числам первый элемент. Первый и последний элементы...

Класс: преобразовать целочисленный массив, прибавив к нечетным числам первый элемент - C++
Преобразовать целочисленный массив, прибавив к нечетным числам первый элемент. Через класс

Дан целочисленный массив .Найти его второй по величине элемент - C++
Помогите пожалуйста составить программу. Дан целочисленный массив . Найти его второй по величине элемент.

Дан одномерный целочисленный массив. Определить элемент с наибольшим количеством делителей - C++
Ребят, задача такая: &quot;Дан одномерный целочисленный массив. Определить элемент с наибольшим количеством делителей.&quot; Помогите плиз...

Дан целочисленный массив. Найти максимальный элемент. Оформить в виде функции - C++
Дан целочисленный массив. Найти максимальный элемент. Оформить в виде функции

дан целочисленный массив Х из 30-ти элементов. найти в нем элемент с максимальным значением, обменять значениями найденный элемент массива с элементов - C++
дан целочисленный массив Х из 30-ти элементов. найти в нем элемент с максимальным значением, обменять значениями найденный элемент массива...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
19.10.2012, 11:29     Дан целочисленный массив размером N. Преобразовать массив, увеличив длину каждой серии на один элемент #2
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
#define N 16
 
#define __countof(p) sizeof(p) / sizeof(p[0]) \
 
int main()
{
    int A[2*N] = { 1, 2, 2, 3, 5, 5, 9, 8, 8, 8, 6, 9, 9, 9, 9, 3 };
 
    for (unsigned i = 0; i < __countof(A); i++)
    {
        int pos = i;
        while (A[i] == A[i+1]) i++;
        for (unsigned r = __countof(A)-1; r >= i && abs(pos-i) > 0; r--)
            A[r+1] = A[r];
    }
 
    for (unsigned n = 0; n < __countof(A); n++)
        printf("%d ",A[n]);
    printf("\n");
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/c51a4e...5ed2cc75be7a42
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru