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

Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.85
ben cooper
0 / 0 / 0
Регистрация: 06.02.2012
Сообщений: 3
06.02.2012, 16:04     Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы. #1
Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы.Помогите решить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2012, 16:04     Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы.
Посмотрите здесь:

C++ Ввести одномерный статический массив из k чисел
Сформировать одномерный массив целых чисел, используя датчик случайных чисел, и распечатать массив. Удалить из массива все элементы, совпадающие с его C++
C++ Вывести все неповторяющиеся элементы массива
C++ Одномерный массив (Ввести массив из 10 вещественных чисел.Найти сумму чисел,стоящих на чётных местах)
C++ Ввести одномерный массив А , вывести его
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.02.2012, 16:23     Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::vector<double> vec((std::istream_iterator<double>(std::cin)), std::istream_iterator<double>());
    
    std::vector<double> unique_vec = vec;
    
    std::sort(unique_vec.begin(), unique_vec.end());
    std::vector<double>iterator unique_end = std::unique(unique_vec.begin(), unique_vec.end());
    unique_vec.resize(unique_end - unique_vec.begin());
    
    std::copy(unique_vec.begin(), unique_vec.end(), std::ostream_iterator<double>(std::cout, "  "));
    std::cout << std::endl;
    
    return 0;
}
Felsurt
5 / 5 / 0
Регистрация: 06.02.2012
Сообщений: 19
06.02.2012, 16:46     Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы. #3
слишком сложно вы сделали
т.к. было сказано просто ввести массив и вывести всего его не повторяющиеся элементы то можно было ограничиться двумя строчками

C++
1
2
std::set<double> col((std::istream_iterator<double>(std::cin)), std::istream_iterator<double>());
std::copy(col.begin(), col.end(), std::ostream_iterator<double>(std::cout, "  "));
но ТС не указал, можно ли использовать STL
ben cooper
0 / 0 / 0
Регистрация: 06.02.2012
Сообщений: 3
06.02.2012, 16:46  [ТС]     Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы. #4
Спасибо..но мне бы с помощью указателей

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# include<iostream.h>
# include <math.h>
int main ()
{
    int a[10],i,k,n,b;
    cout <<"Vvedite razmer :";
    cin>>k;
    for(i=0;i<k;i++)
    {cout<<"Vvedite a["<<i<<"]= ";
    cin>>a[i];
    }
    cout<<"Massive a:"<<endl;
    for(i=0;i<k;i++)
    cout<<a[i]<<"  ";
    cout<<endl;
 Комментарий модератора 
Используйте теги форматирования кода!
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.02.2012, 16:52     Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы. #5
Felsurt, один преподаватель однажды сказал мне такую штуку на экзамене: "Всегда предполагай, что обрабатываемые данные могут понадобиться в неизменном виде после обработки, поэтому обработка не должна изменять данные". Поэтому в вашем алгоритме я бы всё-таки сначала ввёл данные в вектор, а уже этим вектором инициализировал бы множество. А уж какой из этих вариантов "сложный" - спорный вопрос.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.02.2012, 17:50     Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы. #6
silent_1991,
Цитата Сообщение от ben cooper Посмотреть сообщение
Ввести одномерный статический массив
Скорее всего имелось ввиду, что-то в виде
C++
1
int arr[SIZE]; // Си массив
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.02.2012, 17:52     Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы. #7
go, да уж наверное, раз надо "с помощью указателей"... Тут-то наши с Felsurt решения и сливаются
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.02.2012, 18:03     Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы. #8
Цитата Сообщение от silent_1991 Посмотреть сообщение
std::vector<double>iterator
Здесь в глаза сразу бросилось, если я не ошибаюсь, то нужно так.
C++
1
std::vector<double>::iterator
А вообще смысл задания я понял, что-то в виде
C
1
2
3
4
5
6
for ( i = 0 ; i < SIZE ; ++i )
{
   for ( j = 0 ; (j < SIZE) && ((arr[i] != arr[j]) || (i != j))  ; ++j );
      if ( i == j )
         printf ("%5d", arr[i]);
}

Не по теме:

Хотя каждый понимает по-своему

silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.02.2012, 18:05     Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы. #9
Цитата Сообщение от go Посмотреть сообщение
std::vector<double>iterator
При копировании что-то не срослось, поскольку код компилировался и проверялся.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2012, 02:58     Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы.
Еще ссылки по теме:

C++ Ввести одномерный массив А , вывести его. Переставить в обратном порядке все элементы между максимальным из отрицательных и минимальным элементами
C++ Одномерный массив. Найти и вывести все элементы, которые меньше заданного b
C++ Дан одномерный массив элементов. Необходимо вывести все не повторяющиеся элементы

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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
07.02.2012, 02:58     Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы. #10
Цитата Сообщение от go Посмотреть сообщение
C
1
2
3
4
5
6
for ( i = 0 ; i < SIZE ; ++i )
{
 for ( j = 0 ; (j < SIZE) && ((arr[i] != arr[j]) || (i != j)) ; ++j );
 if ( i == j )
 printf ("%5d", arr[i]);
}
Лучше так:
C
1
2
3
4
5
6
for ( i = 0 ; i < SIZE ; ++i )
{
   for ( j = 0 ; (j < SIZE) && ((arr[i] != arr[j]) || (i == j))  ; ++j );
      if ( j == SIZE )
         printf ("%5d", arr[i]);
}
Yandex
Объявления
07.02.2012, 02:58     Ввести одномерный статический массив из n чисел и вывести все неповторяющиеся элементы.
Ответ Создать тему
Опции темы

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