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

Немного муторности: переписать готовые решения - C++

Восстановить пароль Регистрация
 
Bacaramba
 Аватар для Bacaramba
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 48
22.11.2012, 20:04     Немного муторности: переписать готовые решения #1
Я тупо не успеваю это сделать, есть тонна другой работы. Надеюсь на понимание.

Есть 6 супер халявных задач на массивы. К ним есть (!) готовые решения. Нужно туда напихать указатели. Каким боком не важно, главное чтобы они косвенно участвовали в коде, в решении.

1
Кликните здесь для просмотра всего текста
Сначала задано число N - количество элементов в массиве, N100. Далее через пробел записаны N чисел - элементы массива. Все числа по модулю не превосходят 10000. Выведите все элементы массива с четными индексами (то есть A[0], A[2], A[4], ...).

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
int main()
{
    int i=0, n=0, b=0;
    int a[10000] = {0};
    scanf("%d", &n);
    for(i=0 ; i<n; i++)
    {
        scanf("%d", &b);
        a[i] = b;
    }
 
    for(i=0 ; i<n; i++)
    {
        if(i%2 == 0)
        {
            printf("%d ", a[i]);
        }
    }
    return 0;
}


2
Кликните здесь для просмотра всего текста
Сначала задано число N - количество элементов в массиве. Далее через пробел записаны N чисел - элементы массива. Необходимо вывести все четные элементы массива (то есть те элементы, которые являются четными числами).

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
int main()
{
    int i=0, n=0, b=0;
    int a[10000] = {0};
    scanf("%d", &n);
    for(i=0 ; i<n; i++)
    {
        scanf("%d", &b);
        a[i] = b;
    }
 
    for(i=0 ; i<n; i++)
    {
        if(a[i]%2 == 0)
        {
            printf("%d ", a[i]);
        }
    }
    return 0;
}


3
Кликните здесь для просмотра всего текста
Сначала задано число N - количество элементов в массиве, N10000.
Далее через пробел записаны N чисел - элементы массива. Все числа по модулю не превосходят 109. Выведите одно число – количество положительных элементов в массиве.

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 <stdio.h>
int main()
{
    int i=0, n=0, b=0, c=0;
    int a[10000] = {0};
    scanf("%d", &n);
    for(i=0 ; i<n; i++)
    {
        scanf("%d", &b);
        a[i] = b;
    }
 
    for(i=0 ; i<n; i++)
    {
        if(a[i] > 0)
        {
            c++;
        }
    }
 
    printf("%d", c);
    return 0;
}


4
Кликните здесь для просмотра всего текста
Сначала задано число N - количество элементов в массиве. Далее через пробел записаны N чисел - элементы массива. Необходимо вывести количество элементов массива, которые больше предыдущего элемента в этом массиве.

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
#include <stdio.h>
int main()
{
    int i=0, n=0, b=0, c=0;
    int a[10000] = {0};
    scanf("%d", &n);
    for(i=0 ; i<n; i++)
    {
        scanf("%d", &b);
        a[i] = b;
    }
 
    for(i=0; i<n; i++)
    {
        if(a[i] < a[i+1])
        {
            c++;
        }
 
        if(a[i] < 0 && i == n-1)
        {
            c--;
        }
    }
 
    printf("%d", c);
    return 0;
}


5
Кликните здесь для просмотра всего текста
Сначала задано число N - количество элементов в массиве. Далее через пробел записаны N чисел - элементы массива. Массив содержит только ненулевые числа. Программа должна вывести YES, если есть два соседних элемента с одинаковыми знаками, и NO – иначе.

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
#include <stdio.h>
int main()
{
    int i=0, n=0, b=0, c=0, d=0;
    int a[10000] = {0};
    scanf("%d", &n);
    for(i=0 ; i<n; i++)
    {
        scanf("%d", &b);
        a[i] = b;
    }
 
    for(i=0; i<n; i++)
    {
        if(a[i] > 0 && a[i-1] > 0)
        {
            c++;
        }
 
        if(a[i] < 0 && a[i-1] < 0)
        {
            d++;
        }
    }
 
    if(c > 0)
    {
        printf("YES");
    }
    else
    {
        if(d > 0)
        {
            printf("YES");
        }
        else
        {
            printf("NO");
        }
    }
 
    return 0;
}


6
Кликните здесь для просмотра всего текста
Сначала задано число N — количество элементов в массиве (1N100). Далее через пробел записаны N чисел — элементы массива. Необходимо вывести количество элементов массива, которые строго больше обоих своих соседей.

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 <stdio.h>
int main()
{
    int i=0, n=0, b=0, c=0, d=0;
    int a[10000] = {0};
    scanf("%d", &n);
    for(i=0 ; i<n; i++)
    {
        scanf("%d", &b);
        a[i] = b;
    }
 
    for(i=0; i<n-2; i++)
    {
        if(a[i] < a[i+1] && a[i+1] > a[i+2])
        {
            c++;
        }
    }
        printf("%d", c);
 
    return 0;
}


P.S.
Я код писал год назад на начале изучения си, поэтому есть дибильнейшие методы, отсутствие брейков и т. п.

Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2012, 20:04     Немного муторности: переписать готовые решения
Посмотрите здесь:

C++ Исправить немного
C++ готовые кластерные системы
немного не обычно C++
немного теории C++
Предлага готовые задачи по ООП C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
22.11.2012, 21:04     Немного муторности: переписать готовые решения #2
Bacaramba, все обращения к элементам массива вида a[i] замените на *(a+i)
Bacaramba
 Аватар для Bacaramba
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 48
22.11.2012, 21:11  [ТС]     Немного муторности: переписать готовые решения #3
Пхах.

А вообще как можно иначе?

Добавлено через 33 секунды
Просто мне нужно было создавать указатели, а потом их распихивать.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
22.11.2012, 21:17     Немного муторности: переписать готовые решения #4
что значит создавать и распихивать указатели?
C++
1
2
3
int a[100];
for (int* i = a; i != a+100; ++i)
   *i = 42;
Bacaramba
 Аватар для Bacaramba
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 48
22.11.2012, 21:36  [ТС]     Немного муторности: переписать готовые решения #5
Ну например как я понял, например в №1 так:
создать для n *pn, сканить и выводить только по *pn.

Я просто реально занят другими предметами сейчас.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
22.11.2012, 21:46     Немного муторности: переписать готовые решения #6
Bacaramba, я написал уже два варианта, как работу с массивом можно свести к работе с указателем. Выбирайте любой и встраивайте в свои проги
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2012, 21:58     Немного муторности: переписать готовые решения
Еще ссылки по теме:

Математика/физика/геометрия (готовые функции по вычислению формул) C++
C++ Готовые библиотеки для решения систем уравнений
Немного шаблонов C++

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

Или воспользуйтесь поиском по форуму:
Bacaramba
 Аватар для Bacaramba
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 48
22.11.2012, 21:58  [ТС]     Немного муторности: переписать готовые решения #7
Спасибо, это я уже просто из интереса спрашивал.
Yandex
Объявления
22.11.2012, 21:58     Немного муторности: переписать готовые решения
Ответ Создать тему
Опции темы

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