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

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

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

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

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

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

Найти максимальный из отрицательных элементов массива с четными индексами - C++
Найти максимальный из отрицательных элементов массива А(размерностью 10 и задаваемом с клавиатуры) с четными номерами (с учетом того, что...

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

Найти максимальный из отрицательных элементов массива с четными индексами - C++
Найти максимальный из отрицательных элементов массива с четными номерами (с учетом того что их может не быть). Заранее спасибо!

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

Найти максимальный среди отрицательных элементов массива имеющих четные индексы - C++
Максимальный среди отрицательных элементов имеющих четные индексы. #include <iostream> using namespace std; int main() { ...

Подсчитать количество положительных и отрицательных элементов массива; найти максимальный среди нечётных - C++
искал в форумах, но безрезультатно:-| 1)В массиве из n чисел есть положительные и отрицательные элементы. Подсчитать количество...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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,345
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++
4225 / 2199 / 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, а вы можете написать программу? только полностью пожалуйста..
Thinker
Эксперт C++
4225 / 2199 / 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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2011, 17:21
Привет! Вот еще темы с ответами:

Найти количество отрицательных членов последовательности - C++
HELP Даны натуральные числа п, р, q и целые числа р, а2, ап, причем n&gt;q&gt; р&gt; 1. Найти количество отрицательных членов последовательности...

В массиве целых чисел a1 , a2 , ., a10 найти количество положительных Np и отрицательных No членов - C++
В массиве целых чисел a1, a2, ..., a10 найти количество положительных Np и отрицательных No членов.

Найти максимальный элемент среди отрицательных - C++
Здравствуйте! Будьте добры, помогите разобраться с этим: нужно написать программу, (используя массивы), которая будет искать максимальный...

Вычислить максимальный элемент массива из отрицательных и его порядковый номер - C++
Здравствуйте, помогите пожалуйста, не могу составить программу. Задача:В одномерном массиве, состоящем из 10ти вещественных элементов...


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

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

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