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

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

Войти
Регистрация
Восстановить пароль
 
nik-nak
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
#1

Динамическое распределение памяти. - C++

24.01.2011, 14:52. Просмотров 730. Ответов 11
Метки нет (Все метки)

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
#include<stdio.h>
#include<stdlib.h>
 
int bespor(int *ptr);
 
void main(void){
    int *ptr,kolvo,b=0,i,z=1;
    scanf("%d",&kolvo);//Сколько элементов в последовательности?
    kolvo--;
    if(kolvo>1){
        ptr=(int*)malloc(kolvo*sizeof(int));
        for(i=0;i<=kolvo;i++){
            scanf("%d",(ptr+i));
        }
    b=bespor(ptr);
    free(ptr);
    }
    printf("%d",b);
    while(z==1){//Задержка экрана.
                 scanf("%d",&z);
}}
 
int bespor(int *ptr){
    int i=0, flag=0, b=0;
    if((*(ptr+i))<(*(ptr+(i+1)))){
        flag++;
    }
    i++;
    while(*(ptr+(i+1))!=NULL){
        if(flag==1){
            if((*(ptr+i))>(*(ptr+(i+1)))){
                b++;
                flag--;
        }}else{
            if((*(ptr+i))<(*(ptr+(i+1)))){
                b++;
                flag++;
        }}
        i++;
    }
    return b;
}
Условие: Написать программу, которая подсчитывает, сколько раз последовательность меняется с убывающей на возрастающую и наоборот, перед этим узнав, сколько эл-тов в посл-ти.
Например: 5 4 6 2 8
Ответ: 3
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2011, 14:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамическое распределение памяти. (C++):

Распределение памяти. Динамическое выделение памяти - C++
an-1 an-2 ... a2

Динамическое распределение памяти - C++
помогите пожалуйста поправить код!в массиве по заданному индексу удалить элемент (не работает !)...

Динамическое распределение памяти - C++
Прошу помощи! Даны действительные числа a1...an2 . Получить действительную квадратную матрицу порядка n&lt;8, элементами которой являются...

Динамическое распределение памяти - C++
Ни разу не работал с динамическим распределением. Объясните пжл, что я сделал не так. Цель - получить большую область памяти (состоящей из...

Динамическое распределение памяти - C++
Добрый вечер! Помогите пожалуйста! Поставлена такая задача: Разработать программу, которая в матрице размерности n*n меняет местами...

Динамическое распределение памяти - C++
Не подскажите , здесь где-то есть ошибка? задача : Даны действительные числа . Получить действительную квадратную матрицу порядка n&lt;8,...

11
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
24.01.2011, 14:56 #2
И в чём сопстна вопрос?
1
nik-nak
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 14:57  [ТС] #3
Не компилится.
И я не могу понять в чем ошибка.
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
24.01.2011, 15:00 #4
У меня всё компилируется.
0
nik-nak
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 15:02  [ТС] #5
Какой компилятор?
В компилируемом(у меня) варианте программа глючила на последовательностях с 5 и более элементами.
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
24.01.2011, 15:13 #6
Так не компилируется или не работает?

Добавлено через 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
39
40
41
42
#include<stdio.h>
#include<stdlib.h>
 
int bespor(int *ptr);
 
void main(void){
        int *ptr,kolvo,b=0,i,z=1;
        scanf("%d",&kolvo);//Сколько элементов в последовательности?
        //kolvo--;
        if(kolvo>1){
                ptr=(int*)malloc(kolvo*sizeof(int));
                for(i=0;i</*=*/kolvo;i++){
                        scanf("%d",(ptr+i));
                }
        b=bespor(ptr);
        free(ptr);
        }
        printf("%d",b);
        while(z==1){//Задержка экрана.
                 scanf("%d",&z);
}}
 
int bespor(int *ptr){
        int i=0, flag=0, b=0;
        if((*(ptr+i))<(*(ptr+(i+1)))){
                flag++;
        }
        i++;
        while(*(ptr+(i+1))!=NULL){
                if(flag==1){
                        if((*(ptr+i))>(*(ptr+(i+1)))){
                                b++;
                                flag--;
                }}else{
                        if((*(ptr+i))<(*(ptr+(i+1)))){
                                b++;
                                flag++;
                }}
                i++;
        }
        return b;
}
0
nik-nak
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 15:15  [ТС] #7
Не компилируется выложенный вариант.
Компилирующийся не работает,т.е. выдает неверный ответ(что-то напутал с в функции bespor, уже не помню).
Работаю с Visual Studio 2010 Express.
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
24.01.2011, 15:17 #8
Выложенный вариант компилируется в MSVS2010.
0
nik-nak
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 15:22  [ТС] #9
Спасибо. Заработало.
Теперь небольшое пояснение:
Эта задача у меня была на экзамене по программированию.
Теперь захотелось проверить(преподаватель требовал трассировку в уме), но первоначального варианта я не помню(а листочек посеял) и решил перерешать(извините за тавтологию).
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
24.01.2011, 15:24 #10
nik-nak, а экзамен-то сдали?
0
nik-nak
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 15:28  [ТС] #11
Ирония судьбы.
Сдал на 5.
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
24.01.2011, 15:29 #12
Поздравляю)))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2011, 15:29
Привет! Вот еще темы с ответами:

Динамическое распределение памяти - C++
Столкнулся со следующей задачей: Создать список, элементами которого являются целые числа. Данные формируются случайным образом. Данные...

Динамическое распределение памяти - C++
Дан динамический целочисленный массив y1,y2,....,yn. и и динамическая символьная переменная h. Если значение h равно '+', преобразовать...

Динамическое распределение памяти - C++
Помогите переделать программу в соответствии с условиями: а) для хранения массивов используйте динамически распределяемую память; б)...

Динамическое распределение памяти - C++
По заданию необходимо сделать анимацию движения эллипса по траектории эллипса. Вроде все работает, но необходимо динамически использовать...


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

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

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