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

Многоуважаемые программисты (массив) - C++

Восстановить пароль Регистрация
 
shyra
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 10
11.05.2012, 22:56     Многоуважаемые программисты (массив) #1
Многоуважаемые программисты помогите пожалуйста.
Дан массив символов. предположим N=10 {0.7 0.2 0.7 16 0.2 0.2 4 1.7 16 10}
Необходимо отобразить на экран не повторяющиеся символы и количество повторений:
0.7 - 1 раз
0.2 - 2 раза
16 - 2 раза
4 - 0 раз
1.7 - 0 раз
10 - 0 раз
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2012, 22:56     Многоуважаемые программисты (массив)
Посмотрите здесь:

Программисты для вас C++
C++ Программисты, помогите пожалуйста.
C++ Уважаемые программисты по C++
Здравствуйте господа программисты и сисадмины C++
Задача «Юные программисты» C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
avg93
61 / 61 / 10
Регистрация: 11.12.2009
Сообщений: 247
Завершенные тесты: 3
11.05.2012, 23:02     Многоуважаемые программисты (массив) #2
Цитата Сообщение от shyra Посмотреть сообщение
Многоуважаемые программисты помогите пожалуйста.
Дан массив символов. предположим N=10 {0.7 0.2 0.7 16 0.2 0.2 4 1.7 16 10}
Необходимо отобразить на экран не повторяющиеся символы и количество повторений:
0.7 - 1 раз
0.2 - 2 раза
16 - 2 раза
4 - 0 раз
1.7 - 0 раз
10 - 0 раз
Можно создать асоциативный масив map и туда закидывать значения по индексу из значений исходного массива. А в контейнер по нужному индексу присваивать количество повторений.
shyra
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 10
11.05.2012, 23:07  [ТС]     Многоуважаемые программисты (массив) #3
для меня это слишком сложно....
edward_jonson
 Аватар для edward_jonson
157 / 157 / 25
Регистрация: 23.02.2011
Сообщений: 388
12.05.2012, 00:10     Многоуважаемые программисты (массив) #4
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>
#include <vector.h>
const unsigned N = 10;
struct number
{
    double value;
    unsigned times;
    number(double _value, unsigned _times) : value(_value), times(_times){}
};
int main()
{
    double mas[N] = {0.7, 0.2, 0.7, 16, 0.2, 0.2, 4, 1.7, 16, 10};
    std::vector <number> MyVector;
    for (unsigned i = 0; i < N; i ++)
    {
        number temp(mas[i],0);
        bool found = false;
        for(unsigned k = 0; k < MyVector.size(); k ++)
        {
            if(MyVector[k].value == temp.value)
            {
                MyVector[k].times ++;
                found = true;
            }
        }
        if (!found) MyVector.push_back(temp);
    }
 
    for(unsigned j = 0; j < MyVector.size(); j ++)
        std::cout << MyVector[j].value << " " << MyVector[j].times << std::endl;
 
    return 0;
}
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
12.05.2012, 00:22     Многоуважаемые программисты (массив) #5
переиначил вариант edward_jonson

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <map>
 
int main()
{
    double mas[] = {0.7, 0.2, 0.7, 16, 0.2, 0.2, 4, 1.7, 16, 10};
    const size_t N = sizeof(mas)/sizeof(mas[0]);
    std::map<double, int> map;
    for (size_t i = 0; i < N; ++i) ++map[mas[i]];
    for (std::map<double, int>::iterator it = map.begin() ; it != map.end() ; ++it) {
        std::cout << it->first << " - " << it->second << std::endl;
    }
}
shyra
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 10
13.05.2012, 14:42  [ТС]     Многоуважаемые программисты (массив) #6
спасибо большое
Yandex
Объявления
13.05.2012, 14:42     Многоуважаемые программисты (массив)
Ответ Создать тему
Опции темы

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