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

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

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

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

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

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

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

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

Арифметическая прогрессия - C++
Вывести на экран 7ой член прогрессии если числа находящиеся по соседству различаются в 5 раз, а первое число равен 3ем Добавлено через...

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

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

Арифметическая прогрессия - C++
Надо составить программу возведения натурального числа в квадрат, учитывая следующую закономерность: 12 = 1 22 = 1 + 3 32 = 1 + 3 + 5...

14
Werewolf_RU
8 / 8 / 3
Регистрация: 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
2113 / 1633 / 308
Регистрация: 15.12.2013
Сообщений: 6,398
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 / 3
Регистрация: 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 / 3
Регистрация: 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 / 3
Регистрация: 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 / 3
Регистрация: 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 / 3
Регистрация: 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
Привет! Вот еще темы с ответами:

Арифметическая прогрессия - C++
Задан целочисленный массив размера N. Определить, образуют ли элементы массива арифметическую прогрессию.

Арифметическая прогрессия - C++
народ помогите отпишитесь кто знает как работает программа??? #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; using...

Арифметическая прогрессия - C++
Добрый день всем, пытаюсь решить но никак помогите пожалуйста: На вход программы подаются три целых числа a1, a2 и n. a1 и a2 первые ...

Арифметическая прогрессия - C++
Вычислить (1+1/1^2)+(1+1/2^2)+(1+1/3^2)+...+(1+1/100^2). Найдите ошибку: #include &lt;iostream&gt; using namespace std; int main(){ ...


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

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

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