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

Последовательность - C++

Восстановить пароль Регистрация
 
Chainik!
1 / 1 / 1
Регистрация: 10.11.2008
Сообщений: 43
01.09.2012, 19:01     Последовательность #1
А как вывести на экран самую длинную последовательность?? Не получается!!


#include "stdafx.h"
#include "iostream"
#include "conio.h"
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
setlocale(0, "Russian");
const int n = 17;
int arr[] = {2,1,2,1,2,1,1,1,1,0,2,2,2,0,5,2,8};
cout << "Массив имеет вид: ";
for(int i = 0; i < n; i++)
cout << arr[i] << " ";
int i = 0, count = 0, max = 0, j = 0, res[n];
while(i < n)
{
count = 0;
int copy_arr = arr[i];
while(arr[i] == copy_arr)
i++, count++;
if(count > max)
max = count;
}
cout << "\n\nСамая длинная последовательность состоит из: " << max << "\n\n";
_getch();
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
01.09.2012, 19:03     Последовательность #2
Цитата Сообщение от Chainik! Посмотреть сообщение
самую длинную последовательность
это максимальная длина последовательности из одинаковых элементов?
Chainik!
1 / 1 / 1
Регистрация: 10.11.2008
Сообщений: 43
01.09.2012, 19:09  [ТС]     Последовательность #3
да все правильно
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
01.09.2012, 19:19     Последовательность #4
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>
 
int main()
{
    int a[] = {2,1,2,1,2,1,1,1,1,0,2,2,2,0,5,2,8}, n = 17, len=1, max=1;
    if (n==0) //это для того случая, когда нет вообще элементов. мало ли входные данные поменяются
        max = 0;
 
    for (int i=1; i<n; ++i)
        if (a[i] == a[i-1])
            len++;
        else
        {
            if (len > max)
                max = len;
            len = 1;
        }
 
        std:: cout << max << std::endl;
        system ("pause");
        return 0;
}
Chainik!
1 / 1 / 1
Регистрация: 10.11.2008
Сообщений: 43
01.09.2012, 19:23  [ТС]     Последовательность #5
Ну и чё ты написал??
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.09.2012, 19:27     Последовательность #6
Цитата Сообщение от Chainik! Посмотреть сообщение
Ну и чё ты написал??
формулируйте задание точнее.
Например так:
задан массив: int a[] = {2,1,2,1,2,1,1,1,1,0,2,2,2,0,5,2,8}
должно вывести на экран: "Самая длинная последовательность состоит из: 4 элементов"

или так:
задан массив: int a[] = {2,1,2,1,2,1,1,1,1,0,2,2,2,0,5,2,8}
должно вывести на экран: "Самая длинная последовательность состоит из: 1 1 1 1"
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,048
01.09.2012, 19:30     Последовательность #7
Цитата Сообщение от Chainik! Посмотреть сообщение
int arr[] = {2,1,2,1,2,1,1,1,1,0,2,2,2,0,5,2,8};
cout << "Массив имеет вид: ";
for(int i = 0; i < n; i++)
Можно так
C++
1
for(int i = 0; i <sizeof(arr)/sizeof(int) ; i++)
тогда вообще отвязываешься от константы
сколько набьешь элементов столько и выведешь
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
01.09.2012, 19:31     Последовательность #8
Chainik!, Вам вот это нужно
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
#include <iostream>
 
int main()
{
    int a[] = {2,1,2,1,2,1,1,1,1,0,2,2,2,0,5,2,8}, n = 17, len=1, max=1, cmax=0;
    if (n==0) //это для того случая, когда нет вообще элементов. мало ли входные данные поменяются
        max = 0;    
    else
        cmax = a[0];
 
    for (int i=1; i<n; ++i)
        if (a[i] == a[i-1])
            len++;
        else
        {
            if (len > max)
            {
                max = len;
                cmax = a[i-1];
                len = 1;
            }
        }
 
        std:: cout << max << std::endl;
        for (int i=0; i<max; ++i)
            std::cout << cmax << " ";
        std::cout << std::endl;
        system ("pause");
        return 0;
}
?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2012, 19:49     Последовательность
Еще ссылки по теме:

C++ Последовательность а1, a2, . . . , аn
C++ Последовательность
последовательность C++

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

Или воспользуйтесь поиском по форуму:
Chainik!
1 / 1 / 1
Регистрация: 10.11.2008
Сообщений: 43
01.09.2012, 19:49  [ТС]     Последовательность #9
Да спасибо
Yandex
Объявления
01.09.2012, 19:49     Последовательность
Ответ Создать тему
Опции темы

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