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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 5.00
Hagiga
2 / 2 / 0
Регистрация: 17.11.2010
Сообщений: 10
#1

Алгоритм поиска арифметической прогрессии в одномерном массиве - C++

17.11.2010, 16:47. Просмотров 2137. Ответов 5
Метки нет (Все метки)

Программа получает массив целых чисел, проверяет сколько есть последовательностей возрастающих на единицу чисел в массиве (минимум два числа). На выходе должно быть количество последовательностей и первая самая длинная последовательность.
например в массиве 12 3 4 23 5 46 5 6 7 78 67 68 134 45 46 47 67 11
выдаст количество - 4
длинная серия 5 6 7

буду очень признателен за помощь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2010, 16:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Алгоритм поиска арифметической прогрессии в одномерном массиве (C++):

Заполнить массив первыми 10 членами арифметической прогрессии с известным первым членом прогрессии А и разницей Р. - C++
С++ Помогите пожалусто. Заполнить массив первыми 10 членами арифметической прогрессии с известным первым членом прогрессии А и...

Функция поиска наибольшего значение в одномерном массиве - C++
Написал только функцию вывода массива: void PrintArray(){ srand (time (0)); const int n = 10; int a; for (int i = 0; i < n;...

Разработать приложение поиска минимального и максимального элемента в одномерном массиве - C++
Здравствуйте, учусь в ПТУ на программиста) Ясно дело не разбираюсь в программировании, у меня была практика и задание по практике: ...

Написать функцию поиска количества положительных элементов в одномерном массиве - C++
Написать функцию поиска количества положительных элементов в одномерном массиве. Все необходимые для вычисления данные передать в ...

Разработать приложение поиска суммы четных элементов в одномерном массиве - C++
Помогите .Разработать приложение поиска суммы четных элементов в одномерном массиве.

Написать функцию поиска в одномерном массиве элемента, удовлетворяющего условию - C++
1)Написать функцию поиска в одномерном массиве элемента X, удовлетворяющего условию n<X<m. Значения n и m вводятся с клавиатуры в ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
VASSUV
MiThEoN
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 416
Записей в блоге: 2
Завершенные тесты: 1
18.11.2010, 04:17 #2
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <math.h>/*
   Программа получает массив целых чисел, проверяет сколько есть последовательностей
   возрастающих на единицу чисел в массиве (минимум два числа). На выходе должно быть
   количество последовательностей и первая самая длинная последовательность.
       например в массиве 12 3 4 23 5 46 5 6 7 78 67 68 134 45 46 47 67 11
       выдаст количество - 4
       длинная серия 5 6 7 */
 
int _tmain(int argc, _TCHAR* argv[])
{
    int a[100];
    int i , n , k , j , len , maxlen ;
    printf("n=");
    scanf("%d",&n);
    maxlen=1;
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    j=0;
    for(i=1;i<n;i++)
    {
        if(a[i]==a[i-1]+1)
        {
            len=2;
            i++;
            while(a[i]==a[i-1]+1)
            {
                len++;
                i++;
            }
            if(maxlen<len)
            {
                maxlen=len;
                k=i-len;
            }
            j++;
        }
    }
    printf("kol-vo: %d\n",j);
    for(i=k;i<k+maxlen;i++)
    {
        printf("%5d",a[i]);
    }
    getch();
}
Hagiga
2 / 2 / 0
Регистрация: 17.11.2010
Сообщений: 10
19.11.2010, 21:02  [ТС] #3
Прежде всего, оромное спасибо за помощь.
C
1
2
 printf("n=");
        scanf("%d",&n);
вы имеете ввиду ввести размер массива?

думаю заменить на #define

C
1
2
3
4
for(i=k;i<k+maxlen;i++)
        {
                printf("%5d",a[i]);
        }
это решение особенно понравилось, я два дня бился, а оно так просто.
VASSUV
MiThEoN
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 416
Записей в блоге: 2
Завершенные тесты: 1
19.11.2010, 21:09 #4
Цитата Сообщение от Hagiga Посмотреть сообщение
вы имеете ввиду ввести размер массива?
да именно так

всегда пожалуйста!!!
Hagiga
2 / 2 / 0
Регистрация: 17.11.2010
Сообщений: 10
19.11.2010, 21:22  [ТС] #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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#define n 100
int main()
{
        int a[n];
        int i,k,j,len,maxlen;
        
        maxlen=1;
        printf("Enter 100 integer numbers\n");
        for(i=0;i<n;i++)
        {
                scanf("%d",&a[i]);
        } 
        j=0;
        for(i=1;i<n;i++)
        {
                if(a[i]==a[i-1]+1)
                {
                        len=2;
                        i++;
                        while(a[i]==a[i-1]+1)
                        {
                                len++;
                                i++;
                        }
                        if(maxlen<len)
                        {
                                maxlen=len;
                                k=i-len;
                        }
                        j++;
                }
        }
        printf("Number of series : %d\n",j);
        printf("Longest serie : ");
        for(i=k;i<k+maxlen;i++)
        {
            printf("%3d",a[i]);
        }
        printf("\n");
}
golf4man
0 / 0 / 0
Регистрация: 20.05.2011
Сообщений: 13
20.05.2011, 18:50 #6
Здравствуйте ув. форумчане!
Помогите начинающему прогеру как реализовать следующую задачку по арифметической прогрессии:
Дан набор целых чисел. Если они образуют арифметическую прогрессию, то вывести разность прогрессии, если же нет, то просто "No".
Вообщем нужен сам алгоритм, хотя бы зацепка (с математикой просто плохо)...дальше постараюсь реализовать сам.
Спасибо!

Добавлено через 3 минуты
Ах сорри, нашел на вашем форуме http://www.cyberforum.ru/cpp-beginne...ead184272.html
Отсортировать-то массив я забыл...
Еще раз спасибооо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2011, 18:50
Привет! Вот еще темы с ответами:

Разработать приложение поиска суммы отрицательных четных элементов в одномерном массиве - C++
Разработать приложение поиска суммы отрицательных четных элементов в одномерном массиве.

Написать процедуру поиска индекса n-го по счету нулевого элемента в одномерном массиве - C++
Написать процедуру поиска индекса n-го по счету нулевого элемента в одномерном массиве. Значение n ввести с клавиатуры. Все необходимые...

Функция поиска в одномерном массиве: найти количество положительных и отрицательных элементов - C++
как в С++ пишется функция поиск? что то типо этого: poisk(A, n); void poisk(int** a, int n)

Вычисление арифметической прогрессии - C++
как записать вычисление арифмитической прогрессии. без программы. просто отрывко вычисления. Давайте темам осмысленные названия


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.05.2011, 18:50
Ответ Создать тему
Опции темы

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