Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
cold_water
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 1
1

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

05.12.2011, 18:24. Просмотров 1141. Ответов 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();
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2011, 18:24
Ответы с готовыми решениями:

Все элементы заданного массива, равные нулю, поставить сразу после максимального элемента
В массиве A=(a1, а2, ..., аn) все элементы, равные нулю, поставить сразу после максимального...

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

Все элементы, равные нулю переместить в начало массива
Преобразовать одномерный вещественный массив таким образом, чтобы сначала располагались все...

Перенести в начало массива все элементы, равные нулю
Есть добрые люди? Помогите сделать сортировку. Дано: В одномерном массиве, состоящем из n...

В каждой строке все элементы, не равные нулю, переписать в начало строки, а нулевые элементы – в конец массива
Дан двумерный массив. В каждой строке все его элементы, не равные нулю, переписать (сохраняя...

1
Fivesun
0 / 0 / 0
Регистрация: 09.12.2014
Сообщений: 1
12.12.2014, 16:03 2
Можно более подробно описать "сдвига массива",каждую строчку,если можно.Спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2014, 16:03

Переделать массив так, чтоб все элементы, равные нулю и единице располагались после всех остальных
Переделать массив так, чтоб все элементы, равные нулю и единице располагались после всех остальных

Превратить массив таким образом, чтобы все элементы, равные нулю и единице, располагались после всех остальных
Сделайте задачу с с помощью массива: Превратить массив таким образом, чтобы все элементы, равные...

Преобразование массива: преобразовать массив чтобы сначала располагались все элементы, равные нулю, а потом остальные
Подскажите, как можно преобразовать одномерный массив чтобы сначала располагались все элементы,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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