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

Посчитать количество различных элементов в массиве - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.69
Светлана_333
1 / 1 / 0
Регистрация: 21.12.2011
Сообщений: 5
21.12.2011, 14:49     Посчитать количество различных элементов в массиве #1
Дан линейный массив целых чисел ввести с клавиатуры не менее 10 элементов и посчитать сколько в нем различных чисел .

помогите решить

 Комментарий модератора 
Во-первых, какое отношение ваша задача имеет конкретно к Visual C++? И во-вторых, не надо лезть со своими задачами в чужие темы, тем более, что обсуждаемые там вопросы никак не соотносятся с вашим.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
21.12.2011, 15:08     Посчитать количество различных элементов в массиве #2
Цитата Сообщение от Светлана_333 Посмотреть сообщение
Дан линейный массив целых чисел ввести с клавиатуры не менее 10 элементов и посчитать сколько в нем различных чисел .
помогите решить
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
#include <iostream>
using namespace std;
 
int main()
{
    cout<<"Enter num of elements : ";
    int i,j,n;cin>>n;
    int * arr = new int[n];
    for(i = 0; i < n; i++)
    {
        cout<<"arr["<<i + 1<<"] = ";
        cin>>arr[i];
    }
    int nCount    = 0;
    int nDiferent = 0;
    for(i = 0; i < n; i++)
    {
        nCount = 0;
        for(j = 0; j < n; j++)
        {
            if(arr[i] == arr[j])
                nCount++;
        }
        if(1 < nCount)
            nDiferent++;
    }
    if(nDiferent < 1)
        cout<<"All elemnts in array is same!\n";
    else
        cout<<"Number of diferent elements is : "<<nDiferent<<endl;
    system("pause");
    return 0;
}
Enter num of elements : 11
arr[1] = 1
arr[2] = 5
arr[3] = 6
arr[4] = 5
arr[5] = 3
arr[6] = 1
arr[7] = 8
arr[8] = 5
arr[9] = 2
arr[10] = 0
arr[11] = 14
Number of diferent elements is : 5
Для продолжения нажмите любую клавишу . . .

Добавлено через 3 минуты
PS:Светлана_333, по правилам форума вы должны создавать тему в отдельном топике, тогда кроме ответчиков данного топика он будет виден всем пользователям и помочь вам сможет больше людей. Внимательно ознакомтесь с правилами форума
oxotnik
 Аватар для oxotnik
1584 / 1061 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
21.12.2011, 15:15     Посчитать количество различных элементов в массиве #3
-=ЮрА=-, это все решается в 2 (условно) строки через std::set
-=ЮрА=-
21.12.2011, 15:27
  #4

Не по теме:

Цитата Сообщение от oxotnik Посмотреть сообщение
-=ЮрА=-, это все решается в 2 (условно) строки через std::set
- и???Я ответил ТС на основе его уровня, притом голые алгоритмы часто не понятны присутвующему здесь народу, если есть желание блеснуть знаниями лучше сюда
Вывести цифры треугольником
буду с нетерпением ждать высокоуровневого решения - чесн слово!!!

silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
28.12.2011, 06:12     Посчитать количество различных элементов в массиве #5
Если интересен вариант с std::set:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <set>
#include <algorithm>
#include <iterator>
 
template<typename T>
size_t diff_elems_num(T *arr, size_t size)
{
    return std::set<T>(arr, arr + size).size();
}
 
int main()
{
    int arr[10];
 
    std::cout << "Enter 10 numbers: ";
    std::copy(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(), arr);
 
    std::cout << "Number of difference elements: " << diff_elems_num(arr, 10) << std::endl;
 
    return 0;
}
Yandex
Объявления
28.12.2011, 06:12     Посчитать количество различных элементов в массиве
Ответ Создать тему
Опции темы

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