3 / 3 / 0
Регистрация: 13.04.2011
Сообщений: 32
1

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

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

Студворк — интернет-сервис помощи студентам
1)Проверить, есть ли в массиве ДВА ПОДРЯД идущих одинаковых элемента.
2)Проверить, содержатся ли в массиве ДВА ПОДРЯД идущих отрицательных элемента.
(Проверку состояния массива оформить в виде логической функции)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2012, 00:36
Ответы с готовыми решениями:

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

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

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

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

8
32 / 26 / 11
Регистрация: 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
143 / 112 / 36
Регистрация: 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
38 / 38 / 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
3 / 3 / 0
Регистрация: 13.04.2011
Сообщений: 32
18.03.2012, 00:57  [ТС] 5
SkyDream,спасибо конечно я только учусь и функцию непроходил пока что

Добавлено через 5 минут
массив надо самому ввести и если можно с простыми операторами и коммментариями чтоб я мог понять
0
32 / 26 / 11
Регистрация: 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
143 / 112 / 36
Регистрация: 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
38 / 38 / 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
3 / 3 / 0
Регистрация: 13.04.2011
Сообщений: 32
18.03.2012, 01:09  [ТС] 9
на С++ сам поменяю операторы) благодарю всем))))
0
18.03.2012, 01:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2012, 01:09
Помогаю со студенческими работами здесь

2 задачки на массивы
Как во второй задаче выделить нужные элементы матрицы? И как выделить в первой задаче индексы...

Задачки на массивы
Здравствуйте уважаемые программисты кто знает как решить эти 2 скромненькие задачи, пожскажите...

Задачки на одномерные массивы
Здраствуйте, очень очень срочно нужно решить задачки: B9 Удалить максимальный из кратных трем...

Две задачки - Массивы
Доброго времени суток.. Нужна помощь, нужно решить две задачки.. Заранее, премного благодарен.. ...

Одномерные массивы(задачки)
Здрасте всем. Огромная просьба решить задачки. 1)В массиве все элементы, стоящие между четными,...

3 задачки на одномерные массивы
1. Найдите количество нулей во всем массиве и определите сумму квадратов чисел, принадлежащих...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru