С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Bacaramba
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 48
#1

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

22.11.2012, 20:04. Просмотров 867. Ответов 6
Метки нет (Все метки)

Я тупо не успеваю это сделать, есть тонна другой работы. Надеюсь на понимание.

Есть 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.
Я код писал год назад на начале изучения си, поэтому есть дибильнейшие методы, отсутствие брейков и т. п.

Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2012, 20:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Немного муторности: переписать готовые решения (C++):

Готовые библиотеки для решения систем уравнений - C++
Методом Гаусса. Приведением к диагональному виду. Разрядность 32 бита, при обращении элементов главной диагонали в ноль возвращается FALSE.

Есть ли готовые решения? - CMD/BAT
Что нужно: узнать версию ОС, версию сборки, какой сервис пак, разрядность; какие комплектующие используются; серийники комплектующих...

Готовые SCSS-решения - HTML, CSS
Изучаю sass, почитал теорию, посмотрел базисы, небольшое применение нашел в своих проектах, но какой то глобальной панацеи к сожалению,...

Есть ли готовые решения? - Delphi
Есть ли готовые решения для распознавания самой стандартной, простой капчи? Вот пример : И если нету, дайте ссылки на статьи по...

Есть ли подобные готовые решения? - CMS
Хотелось бы реализовать такое: у нас транспортная компания, занимающаяся перевозками пассажиров. У некоторых есть пластиковые карты, на...

Готовые решения написания специализированной CMS - Java
День добрый! Обращаюсь за советом потому как занимался до этого времени исключительно серверными приложениями на Java. Значит речь идет о...

6
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
22.11.2012, 21:04 #2
Bacaramba, все обращения к элементам массива вида a[i] замените на *(a+i)
0
Bacaramba
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 48
22.11.2012, 21:11  [ТС] #3
Пхах.

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

Добавлено через 33 секунды
Просто мне нужно было создавать указатели, а потом их распихивать.
0
I.M.
566 / 549 / 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;
0
Bacaramba
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 48
22.11.2012, 21:36  [ТС] #5
Ну например как я понял, например в №1 так:
создать для n *pn, сканить и выводить только по *pn.

Я просто реально занят другими предметами сейчас.
0
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
22.11.2012, 21:46 #6
Bacaramba, я написал уже два варианта, как работу с массивом можно свести к работе с указателем. Выбирайте любой и встраивайте в свои проги
1
Bacaramba
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 48
22.11.2012, 21:58  [ТС] #7
Спасибо, это я уже просто из интереса спрашивал.
0
22.11.2012, 21:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2012, 21:58
Привет! Вот еще темы с ответами:

Примеры для программы, готовые решения - PHP
Привет всем !!! Есть задача. Нужно сделать график, выбор параметра, календарь. При выборе даты в календаре, выборе параметра,...

Вставить готовые решения задач в приложение TurboVision - Pascal
Вставить в это меню program TFirst; uses App, Objects, Menus, Drivers, Views; const cmNewWin = 199; ...

Готовые решения и полезные коды на Visual Basic 6.0 - Visual Basic
Запрещаются любые обсуждения выложенных здесь работ (читаем спойлер). Собственно тут буду публиковать разные коды (как собственные или...

Задачки по физике, может у кого есть готовые решения? - Колебания и волны
1)Материальная точка совершает колебания по закону x=2sin(nt + 0.5П)см. Найти амплитуду, период, частоту, начальную фазу колебаний, а также...


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

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

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