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

Работа с массивом через указатели(Определить, строго ли чередуются элементы в массиве) - C++

Восстановить пароль Регистрация
 
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
21.12.2012, 02:11     Работа с массивом через указатели(Определить, строго ли чередуются элементы в массиве) #1
Задан массив из N элементов, состоящий только из нулей и единиц. Определить, строго ли чередуются элементы в массиве. Программа должна вывести либо слово "да", либо слово "нет". Значение N и элементы массива ввести с клавиатуры.

надо с помощью указателей
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2012, 02:11     Работа с массивом через указатели(Определить, строго ли чередуются элементы в массиве)
Посмотрите здесь:

Помогите описать функцию, определяющую, упорядочены ли строго по возрастанию элементы в целочисленном массиве C++
Описать функциюю f(a, n, p), определяющую, упорядочены ли строго по возрастанию элементы в целочисленном массиве C++
Массивы. Описать функцию f(a, n, p), определяющую, упорядочены ли строго по убыванию элементы в целочисленном массиве a из n элементов... C++
Проверить, чередуются ли в массиве положительные и отрицательны элементы C++
Найти сумму положительных элементов в массиве через указатели C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
21.12.2012, 03:23     Работа с массивом через указатели(Определить, строго ли чередуются элементы в массиве) #2
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
#include <iostream>
using namespace std;
 
int main ()
{
    int N;
    int * arr;
    bool ok_arr=true;
    cout << "Enter N: "; cin >> N;
    arr = new int[N]; // выделяем память под int на N эл-тов
    for(int i=0; i<N; i++) {
        cout << "Enter arr[" << i << "]: "; cin >> arr[i];
    }
 
    if(arr[0]==0) {   // если первый эл-т 0
        for(int i=0; i<N && ok_arr; i++) { // пока не дойдем до конца, и вып-ся условие
            if(i%2==0 && arr[i]!=0)
                ok_arr=false;
            if(i%2==1 && arr[i]==0)
                ok_arr=false;
        }
    } else {          // первый эл-т не 0
        for(int i=0; i<N && ok_arr; i++) { // пока не дойдем до конца, и вып-ся условие
            if(i%2==1 && arr[i]!=0)
                ok_arr=false;
            if(i%2==0 && arr[i]==0)
                ok_arr=false;
        }
    }
    if(ok_arr)
        cout << "yes";
    else
        cout << "no";
    delete [] arr;     // освобождаем память
    getchar();
    getchar();
}
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
21.12.2012, 08:06     Работа с массивом через указатели(Определить, строго ли чередуются элементы в массиве) #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <iomanip>
#include <cmath>
 
template < typename T >
bool func(const T *first, const T *last)
{
    const T *next = first + 1;
    while (next < last)
        if (std::abs(*first++ - *next++) != 1)
            return false;
    return true;
}
 
int main()
{
    int array1[] = { 1, 0, 1, 0, 1, 0, 1, 0 };
    int array2[] = { 1, 0, 1, 1, 0 };
    std::cout << (func(std::begin(array1), std::end(array1)) ? "Yes" : "No") << std::endl;
    std::cout << (func(std::begin(array2), std::end(array2)) ? "Yes" : "No") << std::endl;
}
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
21.12.2012, 17:00  [ТС]     Работа с массивом через указатели(Определить, строго ли чередуются элементы в массиве) #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
#include <iostream>
using namespace std;
 
int main ()
{
    int N;
    int * arr;
    bool ok_arr=true;
    cout << "Enter N: "; cin >> N;
    arr = new int[N]; // выделяем память под int на N эл-тов
    for(int i=0; i<N; i++) {
        cout << "Enter arr[" << i << "]: "; cin >> arr[i];
    }
 
    if(arr[0]==0) {   // если первый эл-т 0
        for(int i=0; i<N && ok_arr; i++) { // пока не дойдем до конца, и вып-ся условие
            if(i%2==0 && arr[i]!=0)
                ok_arr=false;
            if(i%2==1 && arr[i]==0)
                ok_arr=false;
        }
    } else {          // первый эл-т не 0
        for(int i=0; i<N && ok_arr; i++) { // пока не дойдем до конца, и вып-ся условие
            if(i%2==1 && arr[i]!=0)
                ok_arr=false;
            if(i%2==0 && arr[i]==0)
                ok_arr=false;
        }
    }
    if(ok_arr)
        cout << "yes";
    else
        cout << "no";
    delete [] arr;     // освобождаем память
    getchar();
    getchar();
}
что за говнокод?)
Yandex
Объявления
21.12.2012, 17:00     Работа с массивом через указатели(Определить, строго ли чередуются элементы в массиве)
Ответ Создать тему
Опции темы

Текущее время: 04:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru