Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> количество промежутков монотонности в массиве 
V
    Опции темы
x0mka
Дата 18.1.2010, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 17.1.2010

Репутация: нет
Всего: нет



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

#include <stdio.h>
#include <math.h>
#define N 5

int number(int array[], int size);
void enter(int array[], int size);


int number(int array[], int size)
{
    int p, number, i;
    number = 1;
    if(array[0] < array[1]) 
        p = 1;
    else
        p = 0;
    for(i = 2; i < size; i++)
    {
           if((array[i] > array[i-1]) && (p == 0))
           {
             number++;
             p = 1;
             if(array[i] > array[i+1])
                 p = 0;
           }
           if((array[i] < array[i-1]) && (p == 1))
           {
              number++;
              p = 0;
              if(array[i] < array[i+1])
                  p = 1;
           }
    }
    return number;
}


void enter(int array[], int size)
{
    int i;
    puts("VVedite chisla");
    for(i = 0; i < size; i++)
        scanf("%d", &array[i]);
}


int main()
{
    int quantity, array[N];
    enter(array, N);
    quantity = number(array, N);
    printf("Kolichestvo_intervalov_monotonnosty %d\n", quantity);
    return 0;
}

PM MAIL   Вверх
bsa
Дата 18.1.2010, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



странно. а по мне, так вполне рабочий алгоритм...
PM   Вверх
Luyan
Дата 18.1.2010, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 3.12.2008

Репутация: 2
Всего: 7



Цитата(x0mka @  18.1.2010,  18:49 Найти цитируемый пост)
но мне сказали, что сам алгоритм  решения неправильный.

в принципе правильный, я заметил только одно. Если у вас последовательность из одинаковых чисел, допустим из пяти единиц, то по логике ответ должен быть 0, а у вас будет 1, хотя ни возрастания ни спадания в массиве нет. Может это они вам хотели сказать?
PM   Вверх
Loner
Дата 22.1.2010, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 22.1.2010
Где: Омск

Репутация: нет
Всего: 2



Можно покороче написать. Например, так
Код

int number(int arr[], int size)
{
    int res=1;
    int fl=0;
    for (int i=0; i<size-1; i++)
    {
        if (arr[i]>arr[i+1])
        {
            if (fl==-1)
                res++;
            fl=1;
        }
        if (arr[i]<arr[i+1])
        {
            if (fl==1)
                res++;
            fl=-1;
        }
    }
    return res;
}


Это сообщение отредактировал(а) Loner - 22.1.2010, 14:50
PM ICQ   Вверх
x0mka
Дата 23.1.2010, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 17.1.2010

Репутация: нет
Всего: нет



нет, так программа не правильно считает промежутки монотонности!!!! я уже пробовала так smile 
PM MAIL   Вверх
Loner
Дата 23.1.2010, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 22.1.2010
Где: Омск

Репутация: нет
Всего: 2



Приведи пример
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.