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

Все элементы, равные нулю, поставить сразу после максимального элемента данного массива - C++

Восстановить пароль Регистрация
 
cold_water
Сообщений: n/a
05.12.2011, 18:24     Все элементы, равные нулю, поставить сразу после максимального элемента данного массива #1
нужно переделать данную задачу, с использованием указателей
Условие:
В массиве A=(a1, а2, ..., аn) все элементы, равные нулю, поставить сразу после максимального элемента данного массива. Элементы массива вводить с клавиатуры.

Ниже она сделана без указателей:

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
46
47
48
49
50
51
52
53
54
55
56
57
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <conio.h>
 
using namespace std;
void main()
{
int n, max, i_max, i, j;
 
cout <<"Skolko elementov v massive? " ;
cin>>n;
int *a=new int[n];
for (int i=0; i<n; i++)
{
cout<<"Vvedite "<<i+1<<" element massiva"<<endl;
cin>>a[i];
}
cout<<"Isnachslnii massiv"<<endl;
for (int i=0; i<n; i++)
cout<<a[i]<<" ";
cout<<endl;
max=a[0];
i_max=0;
int kol=0; // сколько нулей в массиве
for (i=0; i<=n; i++)
{
if (a[i]==0)
{
for (j=i; j<n-1; j++)
a[j]=a[j+1];
i=i-1;
kol=kol+1;
}
}
// найдем максимальный элемент
for (int i=0; i<n-1; i++)
{
if (a[i]>max)
{
max=a[i];
i_max=i;
}
}
i_max++;
// сдвигаем массив
for (i=1; i<=kol; i++)
{
for (j=n; j>=i_max; j--)
a[j]=a[j-1];
a[i_max]=0;
}
cout<<"resultati obrabotki"<<endl;
for (i=0;i<=n-1; i++)
cout<<a[i]<<" ";
_getch();
}
 Комментарий модератора 
Используйте теги форматирования кода!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2011, 18:24     Все элементы, равные нулю, поставить сразу после максимального элемента данного массива
Посмотрите здесь:

C++ Если последний элемент массива положителен, то все элементы массива увеличить на квадрат его максимального элемента
одномерный массив. Все его элементы, не равные нулю, переписать, сохраняя их порядок в начало массива, а нулевые элементы в конец массива in c++ C++
Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных C++
C++ Удаление максимального элемента массива, если все элементы разные
C++ Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных
Преобразовать массив таким образом, чтобы элементы, равные нулю располагались после остальных. C++
C++ Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных
C++ Превратить массив таким образом, чтобы все элементы, равные нулю и единице, располагались после всех остальных

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fivesun
Сообщений: n/a
12.12.2014, 16:03     Все элементы, равные нулю, поставить сразу после максимального элемента данного массива #2
Можно более подробно описать "сдвига массива",каждую строчку,если можно.Спасибо.
Yandex
Объявления
12.12.2014, 16:03     Все элементы, равные нулю, поставить сразу после максимального элемента данного массива
Ответ Создать тему
Опции темы

Текущее время: 18:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru