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

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

Войти
Регистрация
Восстановить пароль
 
никита007
4 / 4 / 0
Регистрация: 02.02.2010
Сообщений: 29
#1

Дан массив размера N - C++

14.05.2010, 11:31. Просмотров 828. Ответов 6
Метки нет (Все метки)

Дан массив размера N. Найти номер его первого локального минимума.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2010, 11:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дан массив размера N (C++):

Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу: - C++
Помогите решить задачу на языке с++ Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу: элемент...

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

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

Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не превышает 1 - C++
Помогите пожалуйста написать программу. Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не...

Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не превышает 1 - C++
Помогите пожалуйста написать программу: Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не...

дан массив размера N - C++
Всем привет! С прошедшими праздниками! такой вопрос:дан массив размера N и целые числа K и L (1 <= K <= L <= N) найти сумму элементов с...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
14.05.2010, 12:33 #2
так а в чем проблемы то? для меня например в данному задании самая большая проблема - это то, что я не помню, что такое локальный минимум. а дальше как по учебнику 2 цикла и условие поиска.
Sn1pe
11 / 11 / 1
Регистрация: 10.05.2010
Сообщений: 23
14.05.2010, 12:38 #3
Если брать из математики локальный минимум - это когда слева элемент больше и справа больше, если не дано никаких других ограничений.
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
14.05.2010, 12:45 #4
Цитата Сообщение от Sn1pe Посмотреть сообщение
Если брать из математики локальный минимум - это когда слева элемент больше и справа больше, если не дано никаких других ограничений.
если я правильно понимаю, то эллемент mas[0] и mas[endEl] - никогда не могут быть локальным минимумом? :-)
если да, то вариант решения может быть примерно таким:
C++
1
2
3
4
5
6
7
8
9
10
11
12
const int size = 5;
int mas[size];
for(int i=0;i<size;i++)
   cin>>mas[i]; //защиту от дураков сами реализовывайте
for(int i=1;i<size-1;i++)
{
   if(mas[i-1]>mas[i] && mas[i+1]> mas[i])
   {
      cout<<"Ура!!! МЫ НАШЛИ ЕГО!!! ЕГО НОМЕР:"<<i<<"и является он числом "<<mas[i];
      break;
   }
}
Sn1pe
11 / 11 / 1
Регистрация: 10.05.2010
Сообщений: 23
14.05.2010, 12:56 #5
Автор конечно лучший в объяснениях условия задачи
Цитата Сообщение от l_a_m Посмотреть сообщение
если я правильно понимаю, то эллемент mas[0] - никогда не может быть локальным минимумом? :-)
Может быть, если судить в сдравом смысле

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main(int argc, char* argv[])
{ const int n=5;
  int a[n],i,need;
  for (i = 0; i < n; i++) {cin >>a[i];}     //ВВод массива, если надо замени
  for (i = 0; i < n; i++)
  { if (i==0) {if (a[1]>a[0]) {need=0; break;}
    } else if (i==n) {if (a[n-1]>a[n]) {need=n; break;}
           }  else
  if ((a[i-1]>a[i]) && (a[i+1]>a[i]))      //При нахождении нужного, выход
  {need=i; break;
    }
    }
    cout <<need;     //Выводит как индекс С++
    getch();
  }
Вот код, если первый и последний тоже могут быть
P.S. проверено в компиляторе
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
14.05.2010, 13:04 #6
Цитата Сообщение от Sn1pe Посмотреть сообщение
Автор конечно лучший в объяснениях условия задачи

Может быть, если судить в сдравом смысле

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main(int argc, char* argv[])
{ const int n=5;
  int a[n],i,need;
  for (i = 0; i < n; i++) {cin >>a[i];}     //ВВод массива, если надо замени
  for (i = 0; i < n; i++)
  { if (i==0) {if (a[1]>a[0]) {need=0; break;}
    } else if (i==n) {if (a[n-1]>a[n]) {need=n; break;}
           }  else
  if ((a[i-1]>a[i]) && (a[i+1]>a[i]))      //При нахождении нужного, выход
  {need=i; break;
    }
    }
    cout <<need;     //Выводит как индекс С++
    getch();
  }
Вот код, если первый и последний тоже могут быть
P.S. проверено в компиляторе
какой-то сложноватый у вас код получился :-) я могу предложить такой вариант:
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
const int size = 5;
int mas[size];
int result = -1;
for(int i=0;i<size;i++)
   cin>>mas[i]; //защиту от дураков сами реализовывайте
if(mas[0]<mas[1])
   result = 0;
if(result == -1)
{
  for(int i=1;i<size-1;i++)
  {
     if(mas[i-1]>mas[i] && mas[i+1]> mas[i])
     {
        result = i;
        break;
     }
  }
 
if(mas[size-2]>mas[size-1] && result == -1)
   result = size -1;
}
if(result != -1)
   cout<<"Ура!!! МЫ НАШЛИ ЕГО!!! ЕГО НОМЕР:"<<result<<"и является он числом "<<mas[result];
else
  cout<<"СКУШНО!!! ШО ВЫ МНЕ ПОДСУНУЛИ!?!?! НЕТ ТУТ НИКАКИХ МИНИМУМОВ!!! ТЕМ БОЛЕЕ ЛОКАЛЬНЫХ!!!";
хе... правда у меня не красивее получилось... ну в общем, сошлемся на: "какой вопрос, такой и ответ" :-)
Sn1pe
11 / 11 / 1
Регистрация: 10.05.2010
Сообщений: 23
14.05.2010, 13:07 #7
Я и не претендовал на простоту
Просто переделывал свою старую другую прогу и почему-то обычные условия в цикл запихнул
Да уж что смогли по вопросу
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2010, 13:07
Привет! Вот еще темы с ответами:

Дан массив A размера N. - C++
Дан массив A размера N. Найти минимальный элемент из его элемен-тов с четными номерами: A2, A4, A6, … .

Дан массив A размера N - C++
Дан массив A размера N. Вывести вначале его элементы с четными номерами (в порядке возрастания номеров), а затем — элементы с нечетными...

дан массив размера N. - C++
в задаче: дан массив размера N. как сделать чтобы не фиксированная величина была, а ввести N и соответственно элементы массива с...

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


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

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

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