Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
TambowsWolf
0 / 0 / 0
Регистрация: 09.07.2011
Сообщений: 19
#1

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

11.07.2011, 15:54. Просмотров 565. Ответов 9
Метки нет (Все метки)

Помогите реше-ить задачу. Очень срочно надо. Буду благодарен.

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

Найти количество непрерывно возрастающих серий в массиве - C++
Добрый день. Уже который день мучаюсь над решением задачи: В одномерном массиве нужно найти кол - во непрерывно возрастающих серий. :mda:...

Определить количество чётных элементов содержащихся в массиве - C++
Ввести одномерный массив целых чисел, вывести его, опреде-лить – количество чётных элементов в нём содержащихся. Далее максимальный...

Найти количество элементов массива, содержащихся между первым и последним максимальным элементом - C++
Здравствуйте! Помогите пожалуйста сделать задачу!!! Дан набор из целых чисел ( числа читаются из файла ). Найти количество...

В массиве записаны оценки, найти количество пятерок, количество четверок, количество троек и количество двоек - C++
В массиве записаны оценки по иностранному языку каждого из 22 учеников класса. Определить количество пятерок, количество четверок,...

Дано имя файла целых чисел. Найти количество элементов, содержащихся в данном файле. Если файла с таким именем не существует, то вывести –1 - C++
Дано имя файла целых чисел. Найти количество элементов, содержащихся в данном файле. Если файла с таким именем не существует, то вывести...

Найти в массиве максимальный и минимальный элементы в массиве и их количество - C++
Помогите, пожалуйста, начал осваивать c++...Не могу справиться с такой задачей: Написать программу, которая вводит с клавиатуры массив...

9
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
11.07.2011, 16:04 #2
TambowsWolf, судя по приведенному Вами примеру один элемент(1) тоже серия?
0
TambowsWolf
0 / 0 / 0
Регистрация: 09.07.2011
Сообщений: 19
11.07.2011, 16:45  [ТС] #3
всмысле?
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
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;
 
}
0
OstapBender
584 / 523 / 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;
}
1
kravam
быдлокодер
1702 / 889 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
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();
}
0
neske
1503 / 870 / 84
Регистрация: 26.03.2010
Сообщений: 2,985
11.07.2011, 17:49 #7
А зачем языки мешать?
0
Jupiter
11.07.2011, 17:54
  #8

Не по теме:

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

0
An1ka
66 / 71 / 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 получается =)
0
kravam
быдлокодер
1702 / 889 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
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 ();
}
0
11.07.2011, 18:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2011, 18:58
Привет! Вот еще темы с ответами:

Определить количество серий, состоящих из квадратов натуральных чисел - C++
В целочисленном массиве определить количество серий, состоящих из квадратов натуральных чисел. Что такое натуральное число - понятно,...

Сформировать массив C из элементов массива А, содержащихся в массиве В ровно 2 раза - C++
Добрый. У меня задание: &quot;Даны массивы целых чисел: A и B. Сформировать массив C из элементов массива А, содержащихся в массиве В ровно 2...

Процедуры и массив (создать, заполнить, вывести, подсчитать количество неубывающих серий) - C++
Помогите написать программу. Нужны создать массив ( к примеру 10 элементов) и несколько процедур к нему. 1. Заполнить массив. 2....

В массиве Z (m) найти количество дежурств знака, то есть количество переходов с минуса на плюс и наоборот. Например, в последовательности 0, - 2, 0 - - C++
В массиве Z (m) найти количество дежурств знака, то есть количество переходов с минуса на плюс и наоборот. Например, в последовательности...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru