Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 58

Найти минимальное положительное и максимальное отрицательное числа, не входящие в вектор

17.06.2015, 10:30. Показов 2037. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В целочисленном векторе найти минимальное положительное и максимальное отрицательное числа, не входящие в этот вектор. Предусмотреть случай, когда таких элементов нет.

Входные данные:
n=10
v_min=-5
v_max=10
Исходный вектор:
7 3 1 -5 -2 5 2 0 8 1

Выходные данные:
min_pol_not=4
max_otr_not=-1


делал на паскале через множества тут такое не прокатит=(
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2015, 10:30
Ответы с готовыми решениями:

Найти минимальное положительное и максимальное отрицательное числа, не входящие в вектор
Задание: в целочисленном векторе vector найти минимальное положительное и максимальное отрицательное числа, не входящие в этот вектор....

Найти минимальное положительное и максимальное отрицательное в массиве
Дан массив A из N целых чисел. Найти и вывести минимальное положительное и максимальное отрицательное числа в этом массиве. Input В...

Минимальное положительное и максимальное отрицательное
Дан массив A из N целых чисел. Найти и вывести минимальное положительное и максимальное отрицательное числа в этом массиве. Input В...

2
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
22.06.2015, 14:06
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
typedef enum
{
  no_error,
  error_invalid_arguments,
  error_mem_alloc,
  error_pos_no_exist,
  error_neg_no_exist
} TErrorCodes;
 
int compareAsc(const void* a, const void* b)
{
  return (*(int*)a - *(int*)b);
}
 
int compareDesc(const void* a, const void* b)
{
  return (*(int*)b - *(int*)a);
}
 
int FindValues(int* const arr, const int N, int* const minPositivePtr, int* const maxNegativePtr)
{
  int errorCode = no_error;
  int positivesCount = 0;
  int negativesCount = 0;
  int minPositive = 0;
  int maxNegative = 0;
  int i = 0;
 
  int* positives = NULL;
  int* negatives = NULL;
 
 
  if ((arr == NULL) || (minPositivePtr == NULL) || (maxNegativePtr == NULL) || (N <= 0))
  {
    errorCode = error_invalid_arguments;
  }
  else
  {
    positives = malloc(N * sizeof(*positives));
 
    if (positives != NULL)
    {
 
      negatives = malloc(N * sizeof(*negatives));
 
      if (negatives != NULL)
      {
        memset(positives, 0, N * sizeof(*positives));
        memset(negatives, 0, N * sizeof(*negatives));
 
        positivesCount = 0;
        negativesCount = 0;
 
        for(i = 0; i < N; i++)
        {
          if (arr[i] > 0)
          {
            positives[positivesCount] = arr[i];
            positivesCount++;
          }
          
          if (arr[i] < 0)
          {
            negatives[negativesCount] = arr[i];
            negativesCount++;
          }
        }
 
        if (positivesCount == 0)
        {
          errorCode = error_pos_no_exist;
        }
        else
        {
          qsort(positives, positivesCount, sizeof(*positives), compareAsc);
 
          minPositive = positives[0];
 
          while (bsearch(&minPositive, positives, positivesCount, sizeof(*positives), compareAsc) != NULL)
          {
            minPositive++;
          }
 
          (*minPositivePtr) = minPositive;
        }
 
        if (negativesCount == 0)
        {
          errorCode = error_neg_no_exist;
        }
        else
        {
          qsort(negatives, negativesCount, sizeof(*negatives), compareDesc);
 
          maxNegative = negatives[0];
 
          while (bsearch(&maxNegative, negatives, negativesCount, sizeof(*negatives), compareDesc) != NULL)
          {
            maxNegative++;
          }
 
          (*maxNegativePtr) = maxNegative;
        }
 
        free(positives);
        free(negatives);
      }
      else
      {
        free(positives);
        errorCode = error_mem_alloc;
      }
    }
    else
    {
      errorCode = error_mem_alloc;
    }
  }
 
  return errorCode;
}
 
int main(void)
{
  int a[] = {7, 3, 1, -5, -2, 5, 2, 0, 8, 1};
 
  int minPositive = 0;
  int maxNegative = 0;
  int errorCode = 0;
 
  errorCode = FindValues(&a[0], 10, &minPositive, &maxNegative);
 
  switch (errorCode)
  {
  case no_error:
    {
      printf("Minimal positive not present: %d\n"
          "Maximal negative not present: %d\n",
          minPositive,
          maxNegative);
      break;
    }
  case error_invalid_arguments:
    {
      printf("Error: invalid arguments!\n");
      break;
    }
  case error_mem_alloc:
    {
      printf("Error: failed to allocate memory!\n");
      break;
    }
  case error_neg_no_exist:
    {
      printf("Warning: negatives not present.\n"
          "Minimal positive not present: %d\n",
          minPositive);
      break;
    }
  case error_pos_no_exist:
    {
      printf("Warning: positives not present.\n"
          "Maximal nagative not present: %d\n",
          maxNegative);
      break;
    }
  default:
    {
      abort();
    }
  }
  return 0;
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12841 / 7582 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
25.06.2015, 01:29
Лучший ответ Сообщение было отмечено Cosfar как решение

Решение

Цитата Сообщение от Cosfar Посмотреть сообщение
Предусмотреть случай, когда таких элементов нет.
А куда бы они, интересно, делись, если нужно найти
Цитата Сообщение от Cosfar Посмотреть сообщение
числа, не входящие в этот вектор
при этом минимальное положительное целое число 1, а максимальное отрицательное -1
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
#include <stdio.h>
 
int * find(const int * array, const size_t count, const int value) {
    return ( ! count ) ? NULL : ( *array == value ) ? (int*)array : find(array + 1, count - 1, value);
}
 
void dump(const int * array, size_t count) {
    while ( count-- )
        printf("%3d%c", *array++, ( count ) ? ' ' : '\n');
}
 
#define ROWS 3
#define COLUMNS 5
 
int main(void) {
    int tests[ROWS][COLUMNS] = {
        { 3, 1, -2, 4, -5 },
        { 5, 6, 7, 8, 9 },
        { -3, -8, -1, -9, -5 }
    };
    int i, n;
    
    for ( i = 0; i < ROWS; ++i ) {
        printf("Test #%d\nArray:\n", i + 1);
        dump(tests[i], COLUMNS);
        for ( n = 1; find(tests[i], COLUMNS, n); ++n )
            ;
        printf("Min positive number not in array: %d\n", n);
        for ( n = -1; find(tests[i], COLUMNS, n); --n )
            ;
        printf("Max negative number not in array: %d\n\n", n);
    }
    
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.06.2015, 01:29
Помогаю со студенческими работами здесь

Найти минимальное положительное число и максимальное отрицательное число среди заданных
Дано N действительных случайных чисел в диапазоне от -100 до 100. Найти минимальное положительное число и максимальное отрицательное число.

В файле найти первое положительное и последнее отрицательное числа
Есть программа, которая в файле находит первое положительное и последнее отрицательное числа и оставляет в файле числа, находящиеся между...

Найти минимальное положительное числа из набора
Дано целое число n и набор из N чисел найти минимальное положительное число из данного набора Если положительное число в наборе отсутствует...

Даны три числа. Найти среди них максимальное отрицательное число
Всем примет, начал изучать Visual Basic никак не могу решить задачу. Даны три числа. Найти среди них максимальное отрицательное число. ...

Найти минимальное положительное целое число Q такое, что произведение цифр числа Q в точности равняется N
Ваша задача — найти минимальное положительное целое число Q такое, что произведение цифр числа Q в точности равняется N. Исходные...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
BASH scripting - the best cases [PurpleSchool]
jigi33 08.04.2025
Занятия BASH в PurpleSchool - отличные примеры для внедрения в практику (see screenshots and file names)
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. ) В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер