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

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

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

Обмен положительных элементов в массиве - C++

23.10.2012, 21:18. Просмотров 461. Ответов 1
Метки нет (Все метки)

Все положительные числа в массиве Z переставить в обратном порядке, не изменяя положения остальных чисел.

Помогите написать обработку. Вот мои заготовки но оно циклится, и не хочет корректно работать(
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void vector::obrabotka2()//menyaem polog el v massive z v obratnom poryadke
 {
        int i,j,k,g,l;
        l=dk;
        k=0;
        for (i=0;i<dm;i=i+2)
                {if (z[i]>0)
                {k=1;}
                if(k==1)
                    {for(j=l;j>0;j--)
                        if(z[j]>0)
                        {k=0;
                        l=j;
                        break;}
                    }
                        k=z[i];
                        z[i]=z[j];
                        z[j]=z[i];
                }  
  }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2012, 21:18     Обмен положительных элементов в массиве
Посмотрите здесь:

обмен элементов в массиве - C++
помогите исправить ошибки в коде /*programma reshaet zadachu:sosedom elementa Aij матрицы называется другой элемент Alk этой же ...

В одномерном массиве из 100 элементов определить сумму положительных элементов - C++
В одномерном массиве из 100 элементов определить сумму положительных элементов. Вывести полученное число.

В одномерном массиве, состоящем из n вещественных элементов, вычислить: • сумму положительных элементов массив - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: • сумму положительных элементов массива; • произведение...

В одномерном массиве из n элементов,найти суму положительных элементов - C++
В одномерном массиве из n элементов,найти суму положительных элементов между первым и последним отрицательным элементом

В одномерном массиве, вычислить произведение положительных элементов, сумму элементов, расположенных до минимального, а также отсортировать массив. - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) произведение положительных элементов массива; 2) сумму...

Определить количество положительных элементов в массиве - C++
Написать функцию, определяющую количество положительных элементов в массиве. Написать программу, проверяющую работу этой функции. Массив...

Найти количество положительных элементов в массиве - C++
Размер массива задайте сами. Сделайте три варианта программы. В первом элементы массива определяются в программе, во втором задаются...

Найти строку в массиве без положительных элементов - C++
Доброго времени суток! Есть задачка. Для двумерного массива разработайте код который бы находил последнюю строчку в массиве не...

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

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

В одномерном массиве вычислить сумму положительных элементов - C++
Задача №1 В одномерном массиве, состоящем из Н действительных элементов, вычислить: Сумму положительных элементов массива; произведение...

Найти сумму положительных элементов в одномерном массиве - C++
Составить программу для работы с одномерным массивом. найти сумму положительных элементов.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HomeR_J_SimpsoN
59 / 59 / 2
Регистрация: 15.10.2010
Сообщений: 356
23.10.2012, 22:28     Обмен положительных элементов в массиве #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
int i = 0, j = SIZE - 1;
for (i, i < SIZE; i++)
{
    // Идем от начала массива
    if (z[i] > 0)
    {
        // Нашли положительный элемент, идем с конца массива
        // чтобы найти последний положительный элемент
        for (j, j >= 0; j--)
        {
            if (z[j] > 0)
            {
                // Меняем мастами i-ый и j-ый элементы
                int tmp = z[i];
                z[i] = z[j];
                z[j] = tmp;
                break;
            }
        }
    }
    if (i > j)
        break;  // Все элементы уже просмотрены
}
Таким образом мы поменяем местами все пары положительных элементов.
Ответ Создать тему
Опции темы

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