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

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

Восстановить пароль Регистрация
 
юля2010
7 / 0 / 1
Регистрация: 06.12.2010
Сообщений: 12
08.12.2010, 21:15     Удалить из массива «лишние» элементы #1
ПОМОГИТЕ,ПОЖАЛУЙСТА...
Дан числовой массив размера 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++ Удалить из массива все элементы, которые меньше среднеарифметического значения всех элементов исходного массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TheMachinist
 Аватар для 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++
 Аватар для valeriikozlov
4660 / 2486 / 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
 Аватар для 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     Удалить из массива «лишние» элементы
Ответ Создать тему
Опции темы

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