Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
FraGas
0 / 0 / 0
Регистрация: 26.01.2014
Сообщений: 11
#1

Одномерные массивы. Найти есть ли в нем арифметическая прогрессия состоящая из трех элементов

03.02.2014, 20:39. Просмотров 546. Ответов 14
Метки нет (Все метки)

Здравствуйте! Помогите решить задачку: Дан одномерный массив. Найти есть ли в нем арифметическая прогрессия состоящая из трех элементов. Ввод элементов с клавиатуры.
Заранее спасибо.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2014, 20:39
Ответы с готовыми решениями:

Одномерные массивы. Найти минимальный из четных элементов.
Здр! Помогите пож-ста, дан массив целых чисел из 10 элементов. Найти...

Одномерные массивы: найти произведение ненулевых элементов
Дан массив C из 11 элементов. Из положительных элементов массива C сформировать...

Арифметическая прогрессия
народ помогите отпишитесь кто знает как работает программа??? #include...

Арифметическая прогрессия
Надо составить программу возведения натурального числа в квадрат, учитывая...

Арифметическая прогрессия
Вычислить (1+1/1^2)+(1+1/2^2)+(1+1/3^2)+...+(1+1/100^2). Найдите ошибку: ...

14
Werewolf_RU
8 / 8 / 7
Регистрация: 03.02.2014
Сообщений: 205
Завершенные тесты: 1
03.02.2014, 20:47 #2
Небольшое уточнение, элементы какими могут быть? Целые/дробные, положительные/отрицательные? Вводится кол-во элементов или ввод заканчивается каким-то символом?
0
FraGas
0 / 0 / 0
Регистрация: 26.01.2014
Сообщений: 11
03.02.2014, 20:49  [ТС] #3
Целые, положительные
Размер массива через константу
0
S_el
2134 / 1662 / 354
Регистрация: 15.12.2013
Сообщений: 6,603
03.02.2014, 20:50 #4
В чем сложность?
0
Ev_Hyper
Заблокирован
03.02.2014, 20:51 #5
FraGas, покажите вашу реализацию
0
FraGas
0 / 0 / 0
Регистрация: 26.01.2014
Сообщений: 11
03.02.2014, 20:54  [ТС] #6
Я не могу понять, как воплотить. Даже с чего начать.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <QtCore/QCoreApplication>
#include <iostream>
#include <stdlib.h>
using namespace std;
 
int main()
{
const int size=10;
int A[size];
int d;
int i;
cout<<" massive: "<<endl;
 
for ( i=0; i<size; ++i){
cin>>A[i];
}
 
system ("pause");
    return 0;
}
0
Werewolf_RU
8 / 8 / 7
Регистрация: 03.02.2014
Сообщений: 205
Завершенные тесты: 1
03.02.2014, 20:55 #7
Можно и без массива, проверять во время ввода. Но, как мне кажется, для такого уровня так будет наглядней. Благо числа небольшие и экономия памяти не требуется.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
unsigned int m[1000];
int main()
{
    unsigned short int n;
    cin>>n;
    for(int i=0; i<n; i++)
    {
        cin>>m[i];
    }
    int k=0;
    for(int i=0; i<n-2; i++)
    {
        if(m[i]-m[i+1]==m[i+1]-m[i+2])
        {
            cout<<"YES";
            return 0;
        }
    }
    cout<<"NO";
    return 0;
}
0
Ev_Hyper
Заблокирован
03.02.2014, 20:56 #8
Цитата Сообщение от FraGas Посмотреть сообщение
#include <QtCore/QCoreApplication>
вам что на Qt надо это сделать?
0
Werewolf_RU
8 / 8 / 7
Регистрация: 03.02.2014
Сообщений: 205
Завершенные тесты: 1
03.02.2014, 21:03 #9
Если автор ещё не сбежал с форума, получив ответ на своё первое сообщение, то вот версия, проверяющая сразу при вводе.
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>
using namespace std;
unsigned int m[1000];
int main()
{
    unsigned short int n;
    int num1, num2, num3;
    cin>>n>>num1>>num2;
    for(int i=0; i<n-2; i++)
    {
        cin>>num3;
        if((num3-num2)==(num2-num1))
        {
            cout<<"YES";
            return 0;
        }
        num1=num2;
        num2=num3;
    }
    cout<<"NO";
    return 0;
}
0
Ev_Hyper
Заблокирован
03.02.2014, 21:06 #10
Werewolf_RU, в вашей второй реализации массива нет
0
Werewolf_RU
8 / 8 / 7
Регистрация: 03.02.2014
Сообщений: 205
Завершенные тесты: 1
03.02.2014, 21:08 #11
Я же специально и добавил её, а то в комментарии к первой упомянул, а код не приложил. Как-то воздушно и "на словах" выходило)
0
FraGas
0 / 0 / 0
Регистрация: 26.01.2014
Сообщений: 11
03.02.2014, 21:08  [ТС] #12
Это не то что требуется. надо вывести еще эти элементы образующие арифметическую прогрессию.
Допустим есть вот такой массив {3, 32, 12, 15, 4, 7, 10, 17, 12, 13}
В таком случае, нужно вывести 4, 7, 10
0
Werewolf_RU
8 / 8 / 7
Регистрация: 03.02.2014
Сообщений: 205
Завершенные тесты: 1
03.02.2014, 21:10 #13
Сразу бы в условии оговорили, что надо вывести. Решение абсолютно такое же, только вместо YES выводите проверяемые переменные.
C++
1
2
3
4
5
if((num3-num2)==(num2-num1))
        {
            cout<<num1<<num2<<num3;
            return 0;
        }
0
FraGas
0 / 0 / 0
Регистрация: 26.01.2014
Сообщений: 11
03.02.2014, 21:20  [ТС] #14
Не пойму зачем использовать unsigned и short?
0
Werewolf_RU
8 / 8 / 7
Регистрация: 03.02.2014
Сообщений: 205
Завершенные тесты: 1
03.02.2014, 21:25 #15
Памяти занимается меньше. В данном случае можно и без них, но в задачах где у тебя, к примеру, здоровый массив целых чисел, будет играть большую роль, укажешь ли ты на положительность значений переменных и длину.
0
03.02.2014, 21:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2014, 21:25

Арифметическая прогрессия
Вывести на экран 7ой член прогрессии если числа находящиеся по соседству...

Арифметическая прогрессия
Дано N десятоков целых чисел. Определить, сколько из них могут составлять...

Арифметическая прогрессия
Здравствуйте, помогите со способом выполнения задания. Задание: Пользователь...


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

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

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