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

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

Восстановить пароль Регистрация
 
nik-nak
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 14:52     Динамическое распределение памяти. #1
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
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.01.2011, 14:56     Динамическое распределение памяти. #2
И в чём сопстна вопрос?
nik-nak
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 14:57  [ТС]     Динамическое распределение памяти. #3
Не компилится.
И я не могу понять в чем ошибка.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.01.2011, 15:00     Динамическое распределение памяти. #4
У меня всё компилируется.
nik-nak
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 15:02  [ТС]     Динамическое распределение памяти. #5
Какой компилятор?
В компилируемом(у меня) варианте программа глючила на последовательностях с 5 и более элементами.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 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;
}
nik-nak
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 15:15  [ТС]     Динамическое распределение памяти. #7
Не компилируется выложенный вариант.
Компилирующийся не работает,т.е. выдает неверный ответ(что-то напутал с в функции bespor, уже не помню).
Работаю с Visual Studio 2010 Express.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.01.2011, 15:17     Динамическое распределение памяти. #8
Выложенный вариант компилируется в MSVS2010.
nik-nak
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 15:22  [ТС]     Динамическое распределение памяти. #9
Спасибо. Заработало.
Теперь небольшое пояснение:
Эта задача у меня была на экзамене по программированию.
Теперь захотелось проверить(преподаватель требовал трассировку в уме), но первоначального варианта я не помню(а листочек посеял) и решил перерешать(извините за тавтологию).
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.01.2011, 15:24     Динамическое распределение памяти. #10
nik-nak, а экзамен-то сдали?
nik-nak
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 15:28  [ТС]     Динамическое распределение памяти. #11
Ирония судьбы.
Сдал на 5.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2011, 15:29     Динамическое распределение памяти.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.01.2011, 15:29     Динамическое распределение памяти. #12
Поздравляю)))
Yandex
Объявления
24.01.2011, 15:29     Динамическое распределение памяти.
Ответ Создать тему
Опции темы

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