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

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

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

Удалить из массива «лишние» элементы - C++

08.12.2010, 21:15. Просмотров 978. Ответов 4
Метки нет (Все метки)

ПОМОГИТЕ,ПОЖАЛУЙСТА...
Дан числовой массив размера N. Удалить из массива «лишние»
элементы, так чтобы оставшиеся образовывали возрастающую
последовательность.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2010, 21:15     Удалить из массива «лишние» элементы
Посмотрите здесь:

Описать процедуру RemoveForInc(A, N), удаляющую из веществен- ного массива A размера N «лишние» элементы C++
C++ Удалить из массива "лишние" (кроме первого) элементы
C++ Удалить элементы из одномерного массива
Удалить элементы массива C++
C++ Удалить элементы из массива
Удалить элементы массива C++
C++ Удалить из массива все элементы, расположенные перед максимальным элементом массива
Массив: Удалить в заданном массиве действительных чисел «лишние» (кроме первого) элементы C++
C++ Удалить из исходного массива три первых элемента, сдвигая элементы массива, напечатать их значения
Удалить элементы из массива байтов C++
C++ Удалить из двумерного массива элементы другого массива
C++ Удалить из массива элементы, кратные 7

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
08.12.2010, 21:41     Удалить из массива «лишние» элементы #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
#include <iostream>
using namespace std;
 
int main()
{
    const int N = 10;
    int Arr[N] = {2,5,3,6,1,7,4,8,5,10};
for(int i = 0;i < N;i++)
cout << Arr[i] << " ";
 
    int * p1 = Arr, *p2 = Arr;
    int count = 0;
cout << endl << *p1 << " ";
    
    while(count < N)
    {
count++;
        p1++;
        if(*p1 > *p2) cout << *p1 << " ";
        p2++;
    }
    
    
        _getch();
}
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
08.12.2010, 21:49     Удалить из массива «лишние» элементы #3
Тут задача немного сложнее чем кажется на первый взгляд.
TheMachinist, Ваш алгоритм работает только для Вашего массива, а если взять массив:
int Arr[N] = {2,5,1,2,3,7,4,8,5,10}; то уже не сработает.
Но дело даже не в этом, для одного и того же массива можно вывести много разных вариантов (различающихся как по номиналам элементов так и по их количеству).
юля2010
7 / 0 / 1
Регистрация: 06.12.2010
Сообщений: 12
09.12.2010, 09:57  [ТС]     Удалить из массива «лишние» элементы #4
спасибо))

Добавлено через 10 минут
это с++?мне надо просто си...
TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
09.12.2010, 10:32     Удалить из массива «лишние» элементы #5
это с++?мне надо просто си...
Тут немногое меняется
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
#include <stdio.h>
#include<conio.h>
 
int main()
{
        const int N = 10;
        int Arr[N] = {2,5,3,6,1,7,4,8,5,10};
for(int i = 0;i < N;i++)
printf("%d ",Arr[i]);
 
printf("\n");
 
        int * p1 = Arr, *p2 = Arr;
        int count = 0;
printf("%d ",*p1);
        
        while(count < N)
        {
count++;
                p1++;
                if(*p1 > *p2) printf("%d ",*p1) ;
                p2++;
        }
        
        
        _getch();
}
Ваш алгоритм работает только для Вашего массива, а если взять массив:
int Arr[N] = {2,5,1,2,3,7,4,8,5,10}; то уже не сработает
Я просто изобразил как это примерно должно быть
дальше Юля сама решит от какого элемента отталкиваться
Yandex
Объявления
09.12.2010, 10:32     Удалить из массива «лишние» элементы
Ответ Создать тему
Опции темы

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