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

Найти в массиве количество локальных минимумов значение которых кратно трем

07.08.2015, 12:36. Просмотров 2103. Ответов 22
Метки нет (Все метки)

У меня такая проблема у меня есть задача Задание 25 № 7319. Дан массив, содержащий 2014 положительных целых чисел. Напишите на одном из языков программирования программу, которая находит в этом массиве количество локальных минимумов, значение которых кратно 3. Локальным минимумом называется элемент массива, который меньше всех своих соседей. Например, в массиве из 6 элементов, содержащем числа 4, 6, 12, 7, 3, 8, есть два локальных минимума: это элементы, равные 4 и 3. Программа должна вывести общее количество подходящих элементов, значения элементов выводить не нужно. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

Найти в массиве количество локальных минимумов значение которых кратно трем


В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.

Как мне решить её на языке С++
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2015, 12:36
Ответы с готовыми решениями:

Найти количество локальных минимумов в одномерном массиве
Составьте функцию, определяющую количество локальных минимумов для массива целых чисел. Элемент...

Найти количество локальных минимумов в двумерном массиве
Нужно найти локальные минимумы в двумерном массиве и посчитать их количество. Локальный минимум это...

Определить количество локальных минимумов в заданном числовом массиве
Задание: составить схему алгоритма и программу решения задачи. Определить количество локальных...

Найти количество локальных минимумов в матрице
Можете подсказать как найти кол-во локальных минимумов в двумерном массиве?

Подсчитать количество локальных минимумов матрицы, найти сумму модулей элементов выше главной диагонали
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него...

22
castaway
Эксперт С++
4938 / 3043 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 10
Завершенные тесты: 1
07.08.2015, 12:44 2
Позвольте сударь я не совсем уяснил вашу просьбу.
2
Croessmah
++Ͻ
15236 / 8628 / 1640
Регистрация: 27.09.2012
Сообщений: 21,243
Записей в блоге: 2
Завершенные тесты: 1
07.08.2015, 13:16 3
Цитата Сообщение от wron10 Посмотреть сообщение
количество локальных минимумов, значение которых кратно 3.
Цитата Сообщение от wron10 Посмотреть сообщение
в массиве из 6 элементов, содержащем числа 4, 6, 12, 7, 3, 8, есть два локальных минимума: это элементы, равные 4 и 3.
4???
С каких пор 4 кратно 3?

Добавлено через 3 минуты
на алгоритмическом:
Код
вызываем_функцию_поиска_локальных_минимумов_кратных_трем
1
castaway
Эксперт С++
4938 / 3043 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 10
Завершенные тесты: 1
07.08.2015, 13:21 4

Не по теме:

Croessmah, это пример. К нему кратность не относится.



Добавлено через 2 минуты
Цитата Сообщение от wron10 Посмотреть сообщение
Как мне решить её на языке С++
Да как хочешь так и решай.
1
Croessmah
07.08.2015, 13:21
  #5

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение
К нему кратность не относится.
перечитал, да, тупо минимумы.

0
ture
530 / 338 / 206
Регистрация: 27.11.2014
Сообщений: 1,043
07.08.2015, 14:26 6
Кратность 3 забыл.

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
#include<iostream>
using std::cout;
using std::endl;
using std::cin;
#include<ctime>
 
int main() {
    setlocale(LC_ALL, "rus");
    //строим массив
    cout << "Укажите размер массива - ";
    int n;
    cin >> n;
    short * m = new short[n];
    cout << "Хотите заполнить массив самостоятельно? (y/n) - ";
    char c;
    cin >> c;
    if(c == 'y' || c == 'Y')
        for(int i = 0; i < n; i++) {
            cout << i + 1 << " - ";
            cin >> m[i];
        }
    else {
        //srand(time(0));
        for(int i = 0; i < n; i++)
            cout << (m[i] = rand()%100) << " ";
    }
 
    //поиск локальных минимумов 
    int cnt = 0;
    bool isDown = true;
    for(int i = 0; i < n - 1; i++)
        if(m[i] < m[i + 1]) {
            if(isDown)
                cnt++;
            isDown = false;
        } else if(m[i] > m[i + 1])
            isDown = true;
        else 
            isDown = false;
    
    cnt += isDown;
    cout << "\nнайдено "<< cnt << endl;
 
    delete[] m;
    system("pause");
    return 0;
}
0
Andrew Sinjagin
21 / 22 / 7
Регистрация: 04.08.2015
Сообщений: 131
07.08.2015, 14:27 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
j = 0;
 
if (a[0]<a[1])
    if (a[0]%3==0) ++j;
 
for (i=1;i<N-1;++i)
{
    if ((a[i]<a[i-1])&&(a[i]<a[i+1]))
        if(a[i]%3==0) ++j;
}
 
if (a[N-1]<a[N-2])
    if (a[N-1]%3==0) ++j;
 
printf("%d",j);
вот так
0
wron10
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
07.08.2015, 17:44  [ТС] 8
А где тогда используется значение 2014 и что означает %
0
Eva Rosalene
07.08.2015, 18:22
  #9

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
вызываем_функцию_поиска_локальных_минимумов_кратных_трем
Лучший :bravo:

0
Andrew Sinjagin
21 / 22 / 7
Регистрация: 04.08.2015
Сообщений: 131
08.08.2015, 11:27 10
% - это операция взятия остатка от деления нацело

C++
1
#define N 2014
- вот где задается значение N и используется 2014
0
wron10
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
08.08.2015, 17:20  [ТС] 11
1
#define N 2014
Ну а почему этой строки нет в прошлом сообщении, и потом разве const int N=2014 не будет более правильно?
0
Andrew Sinjagin
21 / 22 / 7
Регистрация: 04.08.2015
Сообщений: 131
10.08.2015, 17:05 12
Цитата Сообщение от wron10 Посмотреть сообщение
Ну а почему этой строки нет в прошлом сообщении, и потом разве const int N=2014 не будет более правильно?
Работать конечно же будет аналогично, но тут суть в другом - эта строчка есть в исходном задании
0
wron10
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
11.08.2015, 16:08  [ТС] 13
Я вписал программу в visual studio таким образом :
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 "stdafx.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    j = 0;
 
    if (a[0]<a[1])
    if (a[0] % 3 == 0) ++j;
 
    for (i = 1; i<N - 1; ++i)
    {
        if ((a[i]<a[i - 1]) && (a[i]<a[i + 1]))
        if (a[i] % 3 == 0) ++j;
    }
 
    if (a[N - 1]<a[N - 2])
    if (a[N - 1] % 3 == 0) ++j;
 
    printf("%d", j);
 
  return 0;
}
И программа показала что у меня более 10 ошибок, ну например 21 IntelliSense: identifier "N" is undefined и когда я нажал F5 на черном экране выскочило что не является внутренней или внешней командой исполняемой программой или пакетным файлом. Так в чём дело?
0
ture
530 / 338 / 206
Регистрация: 27.11.2014
Сообщений: 1,043
11.08.2015, 16:26 14
dude,
1) жмак по ярлыку visual studio 2013 (коммунити бесплатная и можно всадить русификацию)
2) жмак "создать проект"
3) "Установленные">"Шаблоны">"Другие языки">"visual c++"
4) жмак по "консольное приложение win32" и сразу кнопочку "ОК"
5) в открывшейся хрене жмак "далее"
6) раздел "дополнительные параметры", чпок галку "пустой проект" и жмак "готово"
7) открылась пустая хрень.
8) Ctrl+Shift+A
9) должно быть выделено "Файл с++" и жмак Enter

Во сюда теперь копируй все.

А нуда, тут все лентяи и всего кода не приводят. Но он простой и You быстро догонишь.
1
wron10
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
11.08.2015, 16:47  [ТС] 15
Ну я вбивал примитивную программу без данных и на черном экране программа мне показала слово Hello world, то есть всё работает, поэтому как мне кажется дело не в том что нужно создавать пустой проект, дело в другом .

Добавлено через 5 минут
Ну да про вариант написания программы который мне отправил Andrew ,я понял что он не вполне законченный потому что можно записать начало как void zadacha_V_ и после ввода основного текста то же самое и в конце } .
В основном тексте тоже нужно кое что подправить.
0
ture
530 / 338 / 206
Регистрация: 27.11.2014
Сообщений: 1,043
11.08.2015, 17:09 16
Это будет готовый вариант. Но добавить надо в пустой проект (в принципе можно и не в пустой, но я не знаю как)
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<iostream>
using std::cout;
using std::endl;
using std::cin;
#include<ctime>
 
int main() {
    setlocale(LC_ALL, "rus");
    //строим массив
    cout << "Укажите размер массива - ";
    int n;
    cin >> n;
    short * m = new short[n];
    cout << "Хотите заполнить массив самостоятельно? (y/n) - ";
    char c;
    cin >> c;
    if(c == 'y' || c == 'Y')
        for(int i = 0; i < n; i++) {
            cout << i + 1 << " - ";
            cin >> m[i];
        } else {
            //srand(time(0));
            for(int i = 0; i < n; i++)
                cout << (m[i] = rand() % 100) << " ";
        }
 
    //поиск локальных минимумов 
    if(n > 1) {
        int j = 0;
 
        if(m[0] < m[1] && m[0] % 3 == 0) 
            ++j;
 
        for(int i = 1; i < n - 1; ++i) 
            if(m[i - 1] > m[i] && m[i] < m[i + 1] && m[i] % 3 == 0) 
                ++j;
        
 
        if(m[n - 2]>m[n - 1] && m[n - 1] % 3 == 0) 
            ++j;
 
        cout << "\nнайдено " << j << endl;
    }else
        cout << "\nнайден всего один  элемент в массиве\n";
 
    
    delete[] m;
    system("pause");
    return 0;
}
0
Andrew Sinjagin
21 / 22 / 7
Регистрация: 04.08.2015
Сообщений: 131
11.08.2015, 18:22 17
Цитата Сообщение от wron10 Посмотреть сообщение
Я вписал программу в visual studio таким образом :

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 "stdafx.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    j = 0;
 
    if (a[0]<a[1])
    if (a[0] % 3 == 0) ++j;
 
    for (i = 1; i<N - 1; ++i)
    {
        if ((a[i]<a[i - 1]) && (a[i]<a[i + 1]))
        if (a[i] % 3 == 0) ++j;
    }
 
    if (a[N - 1]<a[N - 2])
    if (a[N - 1] % 3 == 0) ++j;
 
    printf("%d", j);
 
  return 0;
}
И программа показала что у меня более 10 ошибок, ну например 21 IntelliSense: identifier "N" is undefined и когда я нажал F5 на черном экране выскочило что не является внутренней или внешней командой исполняемой программой или пакетным файлом. Так в чём дело?
Честно? Вы читать не умеете. Код, который идет в задании тоже надо вставить в программу

Правильная программа
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
#include <stdio.h>
#define N 2014
 
void main()
{
int a[N];
 
int i,j,k;
 
for (i=0;i<N,i++)
    scanf("%d",&a[i]);
 
j = 0;
 
if (a[0]<a[1])
    if (a[0]%3==0) ++j;
 
for (i=1;i<N-1;++i)
{
    if ((a[i]<a[i-1])&&(a[i]<a[i+1]))
        if(a[i]%3==0) ++j;
}
 
if (a[N-1]<a[N-2])
    if (a[N-1]%3==0) ++j;
 
printf("%d",j);
 
}
0
Croessmah
++Ͻ
15236 / 8628 / 1640
Регистрация: 27.09.2012
Сообщений: 21,243
Записей в блоге: 2
Завершенные тесты: 1
11.08.2015, 23:25 18
Цитата Сообщение от Andrew Sinjagin Посмотреть сообщение
Вы читать не умеете.
сказал он, и начал с void main...
0
Mr.X
Эксперт С++
3184 / 1711 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
12.08.2015, 09:54 19
Вообще-то у автора С++ в задании не значится, так что он просто разделом ошибся. Однако флуда-то сколько!
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
27045 / 18086 / 7150
Регистрация: 22.10.2011
Сообщений: 31,853
Записей в блоге: 6
12.08.2015, 09:56 20
Цитата Сообщение от Mr.X Посмотреть сообщение
Вообще-то у автора С++ в задании не значится
Не читатель? До последнего предложения стартового поста не добрался?
1
12.08.2015, 09:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2015, 09:56

Количество локальных минимумов в списке
Всем привет, в списке нужно подсчитать кол-во локальных минимумов и вывести их. Подсчитать...

Подсчитать количество локальных минимумов
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него...

Подсчитать количество локальных минимумов матрицы
Дали три задачи на зачетную. С массивами у меня более менее нормально, но вот сами задания, что от...


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

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

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