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

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

Войти
Регистрация
Восстановить пароль
 
Рустам777
3 / 3 / 0
Регистрация: 13.04.2011
Сообщений: 32
#1

2 мини задачки на массивы - C++

18.03.2012, 00:36. Просмотров 456. Ответов 8
Метки нет (Все метки)

1)Проверить, есть ли в массиве ДВА ПОДРЯД идущих одинаковых элемента.
2)Проверить, содержатся ли в массиве ДВА ПОДРЯД идущих отрицательных элемента.
(Проверку состояния массива оформить в виде логической функции)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2012, 00:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос 2 мини задачки на массивы (C++):

2 маленькие задачки на массивы - C++
1.в массиве поменять max и min элемент и вывести массив до перемещения и после 2.посчитать количество четных элементов стоящих на...

Задачки на массивы и циклические циклы - C++
а) Ввести данные о результатах работы магазинов в год. Количество магазинов задастся пользователем с клавиатуры. Данные о результатах...

Лабораторная работа. Массивы (задачки к экзамену) - C++
Здравствуйте товарищи форумчани! Помогите пожалуйста с кодами задачек на экзамен! Задачи: 1) Вычислить сумму и число положительных...

Нужен совет для решения задачки*(одномерные массивы) - C++
Дана функция y=5sin(2x+1)+cos(x+1) на интервале от x1 до x2 с шагом h. Сформировать другой одномерный массив из элементов первой “впадины”...

Мини-игра - C++
Здравствуйте уважаемые гуру ООП. Нужна небольшая консультация\помощь в предложенном ниже коде. Итак суть: мне надо каким-нибудь способом...

Мини-программа - C++
#include <iostream> using namespace std; int chnch(int); int main() { int a; cin >> a; cout << chnch(a); ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
SkyDream
32 / 26 / 2
Регистрация: 01.03.2012
Сообщений: 98
18.03.2012, 00:42 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool CheckMas(int mas[], int size_mas, bool negative)
{
    for(int i=1; i<size_mas; i++)
        if(!negative)
            if(mas[i] == mas[i-1])
                return true;
            else ;
        else
            if((mas[i] == mas[i-1]) && (mas[i] < 0) && (mas[i-1] < 0))
                return true;
 
    return false;
}
Функцию писал на коленке, поэтому возможны недочеты.
1 задача: аргумент negative ставь false.
2 задача: аргумент negative ставь true.
Вроде все
1
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
18.03.2012, 00:43 #3
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>
 
bool isequal(const int *, int);
 
int main()
{
        int m[5];
 
        for(int i = 0; i < 5; i++)
                std::cin >> m[i];
 
        std::cout << std::boolalpha << isequal(m,5-1) << std::endl;
 
}
 
bool isequal(const int *m, int step)
{
        if(!step)
                return false;
        else
                return *(m+step) == *(m+(step-1)) ? true : isequal(m,step-1);
}
1
Mega-xaxax
37 / 37 / 1
Регистрация: 11.03.2012
Сообщений: 95
18.03.2012, 00:49 #4
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
51
52
53
// mini.cpp : main project file.
 
#include "stdafx.h"
 
bool IsEqual(int a, int b);
bool IsNegative(int a, int b);
 
int main()
{
    int *a = new int[5];
    
    // если два подряд идущих элемента
    a[0] = 1;
    a[1] = 5;
    a[2] = 5;
    a[3] = 10;
    a[4] = 11;
 
    bool equalFinded = false;
    for (int i = 0; i < 4; i++) {
        if (IsEqual(a[i],a[i+1])) {
            equalFinded = true;
            break;
        }
    }
    
    // если два подряд идущих элемента
    a[0] = 1;
    a[1] = -5;
    a[2] = -5;
    a[3] = 10;
    a[4] = 11;
 
    bool negativeFinded = false;
    for (int i = 0; i < 4; i++) {
        if (IsNegative(a[i],a[i+1])) {
            negativeFinded = true;
            break;
        }
    }
 
    return 0;
}
 
bool IsEqual(int a, int b) {
    if (a == b) return true;
    else return false;
}
 
bool IsNegative(int a, int b) {
    if ((a < 0) && (b < 0)) return true;
    else return false;
}
0
Рустам777
3 / 3 / 0
Регистрация: 13.04.2011
Сообщений: 32
18.03.2012, 00:57  [ТС] #5
SkyDream,спасибо конечно я только учусь и функцию непроходил пока что

Добавлено через 5 минут
массив надо самому ввести и если можно с простыми операторами и коммментариями чтоб я мог понять
0
SkyDream
32 / 26 / 2
Регистрация: 01.03.2012
Сообщений: 98
18.03.2012, 00:59 #6
Цитата Сообщение от Рустам777 Посмотреть сообщение
Проверку состояния массива оформить в виде логической функции
Как Вы хотите сделать функцию без функции?)

Если надо на Си:
C
1
2
3
4
5
6
7
8
9
int a[20];
int i;
for(i=0; i<20; i++)
{
  printf("Vvedite %d element: ", i+1);
  scanf("%d", &a[i]);
}  
 
// тут передавай в функцию массив a и его размер (20).
0
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
18.03.2012, 01:00 #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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
 
bool isequal(const int *, int, bool(*)(const int, const int));
 
bool negative(const int a, const int b)
{
    return ((a < 0) && (b < 0)) && (a == b);
}
bool all(const int a, const int b)
{
    return (a == b);
}
 
int main()
{
    int m[5];
    int choise;
 
    for(int i = 0; i < 5; i++)
        std::cin >> m[i];
 
    std::cout << "1. Все элементы\n2. Отрицательные элементы\n: ";
    std::cin >> choise;
 
    if(choise == 1)
        std::cout << std::boolalpha << isequal(m,5-1,all) << std::endl;
    else if(choise == 2)
        std::cout << std::boolalpha << isequal(m,5-1,negative) << std::endl;
    else
        std::cerr << "Ошибка" << std::endl;
}
 
bool isequal(const int *m, int step, bool(*func)(const int, const int))
{
    if(!step)
        return false;
    else
        return (*func)(*(m+step),*(m+(step-1))) ? true : isequal(m,step-1,(*func));
}
1
Mega-xaxax
37 / 37 / 1
Регистрация: 11.03.2012
Сообщений: 95
18.03.2012, 01:07 #8
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
// mini.cpp : main project file.
#include <iostream>
 
int main()
{
    int *a = new int[5];
    
    // заполняем массив
    for (int i = 0; i < 5; i++) {
        std::cin >> a[i];
    }
 
    // если два подряд идущих одинаковых элемента
    bool equalFinded = false; // изначально одинаковые подряд идущие элементы не найдены
    for (int i = 0; i < 4; i++) {
        if (a[i] == a[i+1]) { // сравниваем элемент с текущим индексом (i) и следующий элемент (i+1)
            equalFinded = true; // если условие выполнено, значит мы нашли два одинаковых элемента в массиве
            break; // выходим из цикла for, поскольку задача выполнена
        }
    }
 
    if (equalFinded) std::cout << "Equals is finded"; // выводим результат, если есть одинаковые подряд идущие элементы
    
    // если два подряд идущих отрицательных элемента
    bool negativeFinded = false; // изначально два подряд идущих элемента не найдены
    for (int i = 0; i < 4; i++) {
        if ((a[i] < 0) && (a[i+1] < 0)) { // сравниваем элемент с текущим индексом (i) и следующий элемент (i+1)
            negativeFinded = true; // если условие выполнено, значит мы нашли два подряд идущих отрицательных элемента в массиве
            break; // выходим из цикла for, поскольку задача выполнена
        }
    }
    if (negativeFinded) std::cout << "Negatives is finded"; // выводим результат, если есть подряд идущие отрицательные элементы
 
    // задерживаем консоль, чтобы мы увидели результат (иначе консоль автоматически закроется)
    int temp = 0;
    std::cin >> temp;
    return 0;
}
1
Рустам777
3 / 3 / 0
Регистрация: 13.04.2011
Сообщений: 32
18.03.2012, 01:09  [ТС] #9
на С++ сам поменяю операторы) благодарю всем))))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2012, 01:09
Привет! Вот еще темы с ответами:

Мини-брутфорс - C++
Задан паттерн XXyyX, где Х может принимать следующие значения: D,J,K,L,L,X,Z, а Y - f,n,s. Необходимо найти все возможные комбинации,...

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

Модифицируйте мини калькулятор - C++
Обьясните, как сделать из обычного калькулятора такой, чтобы на входе он принимал и цифры и строки (например seven+seven = 14) и.т.п. ...

мини программа оповещание - C++
здравствуйте, я в с++ не сильна. Можно ли сделать такое? Имеется ссылка на .xml (обновляется каждые 30 мин.) где выводятся названия....


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

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

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