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

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

Войти
Регистрация
Восстановить пароль
 
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
#1

Найти максимальный из отрицательных членов массива - C++

01.12.2011, 12:05. Просмотров 857. Ответов 7
Метки нет (Все метки)

Найти максимальный из отрицательных членов массива с четными номерами (с учетом того, что их может не быть).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2011, 12:05     Найти максимальный из отрицательных членов массива
Посмотрите здесь:

Найти максимальный элемент среди отрицательных C++
Найти максимальный элемент среди отрицательных элементов массива C++
Найти минимальный из положительных и максимальный из отрицательных элементов C++
C++ Найти максимальный элемент среди отрицательных чисел
В массиве целых чисел a1 , a2 , ., a10 найти количество положительных Np и отрицательных No членов C++
C++ Найти максимальный элемент массива; найти произведение элементов массива, удовлетворяющих условию
C++ Вычислить максимальный элемент массива из отрицательных и его порядковый номер
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HCK
44 / 19 / 1
Регистрация: 18.09.2011
Сообщений: 70
01.12.2011, 12:30     Найти максимальный из отрицательных членов массива #2
C++
1
2
3
4
5
int m = 0;
for (int i = 0; i < n; i++)
{
  if ( (m > mass[i]) and ((mass[i] mod 2) == 0) ) m = mass[i];  
}
В переменную записываешь значение массива при условии если оно меньше записанного в М на первой итерации там будет 0 И если число массива разделить на 2 = 0 следовательно это четное число. Понял ?
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
01.12.2011, 12:34     Найти максимальный из отрицательных членов массива #3
Цитата Сообщение от HCK Посмотреть сообщение
and
wtf?
C++
1
&&

Цитата Сообщение от HCK Посмотреть сообщение
mod 2
Ещё печальней. Просто цикл не судьба сделать для чётных номеров?
C++
1
for (int i = 0; i < n; i+=2)
И где проверка на отрицательность элемента?
HCK
44 / 19 / 1
Регистрация: 18.09.2011
Сообщений: 70
01.12.2011, 13:10     Найти максимальный из отрицательных членов массива #4
Цитата Сообщение от mimicria Посмотреть сообщение
wtf?
C++
1
&&


Ещё печальней. Просто цикл не судьба сделать для чётных номеров?
C++
1
for (int i = 0; i < n; i+=2)
И где проверка на отрицательность элемента?
and .. отголоски недавней разработки на делфи .. а насчет четных элементов .. я думал что задача состоит в поиске минимального четного числа в массиве

Добавлено через 2 минуты
Цитата Сообщение от HCK Посмотреть сообщение
1 for (int i = 0; i < n; i+=2)
то есть будет так 0 1 2 3 4 5 6 - выбрали 0 , 2 , 4. но 0 - это первый элемент а 2 это третий то есть ты по нечетным идешь
Сыроежка
Заблокирован
01.12.2011, 13:17     Найти максимальный из отрицательных членов массива #5
Цитата Сообщение от zttx Посмотреть сообщение
Найти максимальный из отрицательных членов массива с четными номерами (с учетом того, что их может не быть).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
unsigned int max_negative( int a[], unsigned int n )
{
   unsigned int i = 0;
 
   while ( !( a[i] < 0 && a[i] % 2 == 0 ) ) i++;
 
   unsigned int max = i;
 
   while ( ++i < n )
   {
      if ( a[i] < 0 && a[i] % 2 == 0 )
      { 
         if ( max < a[i] ) max = i;
      }
   }
 
   return ( max );
}

Данная функция возвращает индекс максимального элемента. Если такой не найден, возвращаемый индекс равен значениею n.
Thinker
Эксперт C++
4220 / 2194 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
01.12.2011, 16:58     Найти максимальный из отрицательных членов массива #6
Сыроежка, контроль за границей массива забыли сделать в первом цикле и задание не верно поняли, там нужны четные индексы, а не элементы. А это вообще ни в какие ворота не лезет:

C++
1
2
3
4
if ( a[i] < 0 && a[i] % 2 == 0 )
      { 
         if ( max < a[i] ) max = i;
      }
Сами хоть поняли что написали? переменная max сравнивается c a[i], а присваивается ей индекс. Вы уж определитесь, либо
C++
1
         if ( max < a[i] ) max = a[i];
либо
C++
1
         if ( a[max] < a[i] ) max = i;
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
01.12.2011, 17:02  [ТС]     Найти максимальный из отрицательных членов массива #7
Thinker, а вы можете написать программу? только полностью пожалуйста..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2011, 17:21     Найти максимальный из отрицательных членов массива
Еще ссылки по теме:

Найти количество отрицательных членов последовательности C++
C++ Найти максимальный среди отрицательных элементов массива имеющих четные индексы
C++ Среди отрицательных элементов целочисленного массива найти максимальный по модулю
Найти максимальный из отрицательных элементов массива с четными индексами C++
Подсчитать количество положительных и отрицательных элементов массива; найти максимальный среди нечётных C++

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
4220 / 2194 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
01.12.2011, 17:21     Найти максимальный из отрицательных членов массива #8
в языке си нумерация начинается с 0, поэтому за четные индексы брал 0,2,4,...:
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
#include<stdio.h>
#include<conio.h>
 
int Max(const int *a, const int n, int *max)
{
   int i;
   for(i = 0; i < n && a[i] >= 0; i += 2)
      ;
   if (i >= n)
      return 0;
   *max = a[i];
   for(i += 2; i < n; i += 2)
      if (a[i] < 0 && a[i] > *max)
         *max = a[i];
   return 1;
}
 
void Print(const *a, const int n)
{
   int i;
   for(i = 0; i < n; i++)
      printf("%d ", a[i]);
   putchar('\n');
}
 
int main()
{
   int size, max, a[] = {-1, -2, 3, -4, 5};
   size = sizeof(a)/sizeof(*a);
   Print(a, size);
   if (Max(a, size, &max))
      printf("max = %d\n", max);
   else puts("no negative elements");
   getch();
   return 0;
}
если нумерация должна быть естественная, то функция Max такая:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
int Max(const int *a, const int n, int *max)
{
   int i;
   for(i = 1; i < n && a[i] >= 0; i += 2)
      ;
   if (i >= n)
      return 0;
   *max = a[i];
   for(i += 2; i < n; i += 2)
      if (a[i] < 0 && a[i] > *max)
         *max = a[i];
   return 1;
}
Yandex
Объявления
01.12.2011, 17:21     Найти максимальный из отрицательных членов массива
Ответ Создать тему
Опции темы

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