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

Найти количество содержащихся в массиве серий - C++

Восстановить пароль Регистрация
 
TambowsWolf
0 / 0 / 0
Регистрация: 09.07.2011
Сообщений: 19
11.07.2011, 15:54     Найти количество содержащихся в массиве серий #1
Помогите реше-ить задачу. Очень срочно надо. Буду благодарен.

Задача: Дан файл целых чисел. Найти количество содержащихся в нем серий (то есть наборов последовательно расположенных одинаковых элементов). Например, для файла с элементами 1, 5, 5, 5, 4, 4, 5 результат равен 4.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2011, 15:54     Найти количество содержащихся в массиве серий
Посмотрите здесь:

C++ Найти количество элементов массива, содержащихся между первым и последним максимальным элементом
Определить количество серий, состоящих из квадратов натуральных чисел C++
Процедуры и массив (создать, заполнить, вывести, подсчитать количество неубывающих серий) C++
Дано имя файла целых чисел. Найти количество элементов, содержащихся в данном файле. Если файла с таким именем не существует, то вывести –1 C++
В массиве Z (m) найти количество дежурств знака, то есть количество переходов с минуса на плюс и наоборот. Например, в последовательности 0, - 2, 0 - C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
11.07.2011, 16:04     Найти количество содержащихся в массиве серий #2
TambowsWolf, судя по приведенному Вами примеру один элемент(1) тоже серия?
TambowsWolf
0 / 0 / 0
Регистрация: 09.07.2011
Сообщений: 19
11.07.2011, 16:45  [ТС]     Найти количество содержащихся в массиве серий #3
всмысле?
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
11.07.2011, 17:32     Найти количество содержащихся в массиве серий #4
TambowsWolf, где в этом ряду 4 набора одинаковых элементов идущих подряд, когда здесь их только 2:
C++
1
1,[B] 5, 5, 5, 4, 4[/B], 5
Добавлено через 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
int main()
{
    ifstream file("numbers.txt",ios::in);
    if (!file)
    {
        cerr<<"Oh shi";
        exit(100500);
    }
 
    int number1,number2;
    int combo=0;
 
    file>>number1>>number2;
    while(!file.eof())
    {
        if (number1==number2)
         combo++;
        number1=number2;
        file>>number2;
    }
    cout<<combo;
 
}
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
11.07.2011, 17:38     Найти количество содержащихся в массиве серий #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
вот тебе:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
template <class iter>
size_t cnt_diff_seq(iter first, iter last) {
    size_t cnt=1;
    while (++first!=last)
        if (*first!=*(first-1)) cnt++;
 
    return cnt;
}
 
 
int main()
{
    int arr[10]={1,3,4,4,5,5,5,6,6,2};
    std::vector<int> vec(arr,arr+10);
 
    std::cout << cnt_diff_seq(vec.begin(),vec.end());
 
 
    std::cin.get();
    return 0;
}
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
11.07.2011, 17:47     Найти количество содержащихся в массиве серий #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <fstream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
 
int main () {
 fstream io ("file.txt");
 vector<int> vec((istream_iterator<int>(io)), istream_iterator<int>());
 printf ("%d\n",unique(vec.begin(), vec.end())- vec.begin());
 getchar();
}
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
11.07.2011, 17:49     Найти количество содержащихся в массиве серий #7
А зачем языки мешать?
Jupiter
11.07.2011, 17:54
  #8

Не по теме:

что-то ТС сегодня 35р не предлагает

An1ka
65 / 70 / 2
Регистрация: 30.06.2011
Сообщений: 176
11.07.2011, 18:04     Найти количество содержащихся в массиве серий #9
Цитата Сообщение от TambowsWolf Посмотреть сообщение
Задача: Дан файл целых чисел. Найти количество содержащихся в нем серий (то есть наборов последовательно расположенных одинаковых элементов). Например, для файла с элементами 1, 5, 5, 5, 4, 4, 5 результат равен 4.
C++
1
2
3
4
5
6
7
8
int mas [] = { 1, 5, 5, 5, 4, 4, 5};
int *it =mas;
unsigned result =0;
while ( it != mas + 8 ){
  it =std::adjacent_find ( it, mas + 7) + 1;
  result++;
}
std::cout << " Result : " << result << std::endl;
Ну вот так 4 получается =)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2011, 18:58     Найти количество содержащихся в массиве серий
Еще ссылки по теме:

C++ Найти количество непрерывно возрастающих серий в массиве
Подсчитать количество букв, содержащихся в строке C++
C++ Определить количество чётных элементов содержащихся в массиве

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

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
11.07.2011, 18:58     Найти количество содержащихся в массиве серий #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
А так 5
C++
1
int mas [] = { 1, 5, 5, 5, 4, 4, 5, 5};
Добавлено через 23 минуты
Надо вот так уж
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
using namespace std;
 
bool pred (int x, int y) {
 return x!= y;
} 
 
int main(){
int mas [] = { 1, 5, 5, 5, 4, 4, 5, 5, 5, 5, 5, 5, 4};
//int mas [] = { 1, 2, 5, 5, 5, 4, 4, 5, 5, 5, 5, 5, 5};
//int mas [] = { 5, 5, 5, 5, 5, 5, 5, 5, 5};
int *it =mas;
int result =0;
while ( it <= &mas[sizeof(mas)/sizeof(int)]){
  it = adjacent_find (it, &mas[sizeof(mas)], pred)+ 1;
  result++;
}
std::cout << " Result : " << --result << std::endl;
getchar ();
}
Yandex
Объявления
11.07.2011, 18:58     Найти количество содержащихся в массиве серий
Ответ Создать тему
Опции темы

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