0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
1

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

24.01.2011, 14:52. Показов 1013. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2011, 14:52
Ответы с готовыми решениями:

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

Динамическое распределение памяти
Помогите,пожалуйста) - расширьте функционал программы за счет возможности введения с клавиатуры...

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

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

11
Эксперт С++
5053 / 3114 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
24.01.2011, 14:56 2
И в чём сопстна вопрос?
1
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 14:57  [ТС] 3
Не компилится.
И я не могу понять в чем ошибка.
0
Эксперт С++
5053 / 3114 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
24.01.2011, 15:00 4
У меня всё компилируется.
0
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 15:02  [ТС] 5
Какой компилятор?
В компилируемом(у меня) варианте программа глючила на последовательностях с 5 и более элементами.
0
Эксперт С++
5053 / 3114 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
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
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 15:15  [ТС] 7
Не компилируется выложенный вариант.
Компилирующийся не работает,т.е. выдает неверный ответ(что-то напутал с в функции bespor, уже не помню).
Работаю с Visual Studio 2010 Express.
0
Эксперт С++
5053 / 3114 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
24.01.2011, 15:17 8
Выложенный вариант компилируется в MSVS2010.
0
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 15:22  [ТС] 9
Спасибо. Заработало.
Теперь небольшое пояснение:
Эта задача у меня была на экзамене по программированию.
Теперь захотелось проверить(преподаватель требовал трассировку в уме), но первоначального варианта я не помню(а листочек посеял) и решил перерешать(извините за тавтологию).
0
Эксперт С++
5053 / 3114 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
24.01.2011, 15:24 10
nik-nak, а экзамен-то сдали?
0
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 12
24.01.2011, 15:28  [ТС] 11
Ирония судьбы.
Сдал на 5.
0
Эксперт С++
5053 / 3114 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
24.01.2011, 15:29 12
Поздравляю)))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2011, 15:29
Помогаю со студенческими работами здесь

Динамическое распределение памяти
Динамическое распределение памяти Ребят выручайте уж совсем плохо с ним:

Динамическое распределение памяти
Не подскажите , здесь где-то есть ошибка? задача : Даны действительные числа . Получить...

Динамическое распределение памяти
как писать эту на программе с++ Даны действительные числа . Получить действительную квадратную...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru