Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 10.06.2012
Сообщений: 7

Из массива в массив перенести числа (элементы массива)

10.06.2012, 20:07. Показов 1746. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Из массива JJ(100) в массив NN(100) перенести числа (элементы массива) сначала нечетные, а затем четные. Вывести массив NN на печать по 10 элементов в строке.

Помогите плиз, очень нужна прога.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.06.2012, 20:07
Ответы с готовыми решениями:

Из массива JJ(100) в массив NN(100) перенести числа (элементы массива) сначала нечетные, а затем четные.
Из массива JJ(100) в массив NN(100) перенести числа (элементы массива) сначала нечетные, а затем четные. Вывести массив NN на печать по 10...

Выстроить элементы массива A по убыванию, определить и поместить в массив В – нечетные числа массива А, в массив С – четные числа массива А
Дан массив А (5; 7; 22; 1; 8; 16; 3). Выстроить элементы массива A по убыванию, определить и поместить в массив В – нечетные числа массива...

В массив С перенести четные элементы массива А, и нечетные элементы массива В
Данны массивы А и В. В массив С перенести четные элементы массива А, и нечетные элементы массива В. Помогите...

14
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
11.06.2012, 02:47
Люблю я зубодробительную логику, что ж тут поделаешь, увы...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <string>
#include <iostream>
#include <sstream>
#include <time.h>
#include <stdlib.h>
int main( ) {
    int JJ[100], NN[100];
    std::stringstream ss;
    srand( time( NULL ) );
    std::cout << "JJ array:\n";
    for ( size_t i = 0; i < 100; std::cout << ( JJ[i] = rand( ) % 100 ) << ( ( i + 1 ) % 10 == 0 && i > 0 ? "\n" : "\t" ), ++i );
    std::cout << "\nNN array:\n";
    for ( size_t i = 0, pass = 1, j = 0; i < 100;
        std::cout << ( ( pass > 0 ? ( JJ[i] % 2 ) > 0 : ( JJ[i] % 2 ) == 0 ) ? ( ( std::stringstream & )( ss << ( NN[j] = JJ[i] ) ) ).str( ) : std::string( "" ) ),
        std::cout << ( ( NN[j] == JJ[i] ? ++j : 7 ) % 10 == 0 && j > 0 ? "\n" : "" ) << ( NN[j] == JJ[i] && ( j + 1 ) % 10 != 0 ? "\t" : "" ),
        ++i, ss.str( "" ), ( i == 100 && pass > 0 ) ? i = pass = 0 : 0 );
    system( "pause" );
    return 0;
}
Миниатюры
Из массива в массив перенести числа (элементы массива)  
0
0 / 0 / 0
Регистрация: 23.12.2014
Сообщений: 10
26.12.2014, 00:11
А можешь скинуть еще скрины с числами,которые выдаст программа,очень нужно?!
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
26.12.2014, 00:58
C++
1
2
3
4
5
6
7
8
bool myFunc (int n)
{
    return n % 2 != 0;
}
 
// ...
    std::copy(std::begin(JJ), std::end(JJ), std::begin(NN));
    std::stable_partition(NN, NN + 100, myFunc); // Делает то, что нужно по заданию
, и печатаешь оба массива...
1
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
26.12.2014, 16:42

Не по теме:

Как давно это было... ну, субъективно. Пять минут разбирал собственный код, как будто издевался тогда над читающим.:D


maverick16, о каких скринах речь? Да и вывод у кода неправильный, посмотри... Бери вариант volvo и вперед.
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
26.12.2014, 23:52
Хоть бы указали, что это C+11, да и хидеры)

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
#include <cstdio>
#include <ctime>
 
#include <iostream>
#include <iomanip>
#include <algorithm>
 
const int SIZE = 100;
 
int main ( ) {
  int JJ[SIZE], NN[SIZE];
  srand(time(NULL));
 
  std::generate( std::begin(JJ), std::end(JJ), [] () {
      return rand() % 10000;
  });
 
  std::copy( std::begin(JJ), std::end(JJ), std::begin(NN) );
  std::stable_partition( std::begin(NN), std::end(NN), [] (int item) {
    return item % 2 == 0;
  });
 
  int count = 0;
 
  std::for_each( std::begin(NN), std::end(NN), [&count] (int item) mutable {
    std::cout << std::right << std::setw(8) << item;
    if (count % 10 == 9) std::cout << std::endl;
    ++count;
  });
  return 0;
}
Добавлено через 19 минут
Или даже с ООП, простихоспаде.
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
#include <cstdio>
#include <ctime>
 
#include <iostream>
#include <iomanip>
#include <algorithm>
 
const int SIZE = 100;
 
class printer {
  std::ostream *out;
  int max_count, width;
 
  int count;
  public:
    printer(std::ostream& out, int max_count, int width) : out(&out), max_count(max_count), width(width), count(0) {}
 
    template<class data>
    void operator () (data val) {
      *out << std::right << std::setw(width) << val;
      if (count % max_count == max_count - 1) *out << std::endl;
      ++count; 
    }
};
 
int main ( ) {
  int JJ[SIZE], NN[SIZE];
  srand(time(NULL));
 
  std::generate( std::begin(JJ), std::end(JJ), [] () {
      return rand() % 10000;
  });
 
  std::copy( std::begin(JJ), std::end(JJ), std::begin(NN) );
  std::stable_partition( std::begin(NN), std::end(NN), [] (int item) {
    return item % 2 == 0;
  });
 
  printer main_printer(std::cout, 10, 8);
 
  std::for_each( std::begin(NN), std::end(NN), main_printer);
  return 0;
}
1
27.12.2014, 00:06

Не по теме:

Мне вот интересно - все, кто прочитал и понял код, подумали, что вопрошающим его ни в жисть не понять?:D

0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
27.12.2014, 00:47
FraidZZ,
Цитата Сообщение от noober Посмотреть сообщение
сначала нечетные, а затем четные
, так что
C++
1
2
3
  std::stable_partition( std::begin(NN), std::end(NN), [] (int item) {
    return item % 2 != 0;
  });
0
0 / 0 / 0
Регистрация: 23.12.2014
Сообщений: 10
27.12.2014, 00:55
А вы делали программу в C++ builder,просто у меня выдает ошибку?
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
27.12.2014, 01:09
maverick16, компилировать с поддержкой C++11. Как она включается в Builder'e - к сожалению, не знаю, так как сам линуксоид с g++

Добавлено через 18 секунд
Цитата Сообщение от volvo Посмотреть сообщение
сначала нечетные
Вот и купи мне капли в глазки

Добавлено через 9 минут
А вообще, можно и радикальнее сделать. Решить без c++11
Даже вообще без C++.
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
#include <cstdio>
#include <ctime>
#include <cstdlib>
 
int main ( ) {
  const int SIZE = 100;
  int JJ[SIZE], NN[SIZE];
  srand(time(NULL));
 
  // Заполняем JJ
  for (int i = 0; i < SIZE; ++i) {
    JJ[i] = rand() % 10000;
  }
 
  int cursor = 0;
  // Переносим нечётные в NN
  for (int i = 0; i < SIZE; ++i) {
    if (JJ[i] % 2 != 0) {
      NN[cursor] = JJ[i];
      ++cursor;
    }
  }
 
  // Переносим чётные в NN
  for (int i = 0; i < SIZE; ++i) {
    if (JJ[i] % 2 == 0) {
      NN[cursor] = JJ[i];
      ++cursor;
    }
  }
 
  // Выводим
  for (int i = 0; i < SIZE; ++i) {
    printf("%8i", NN[i]);
    if (i % 10 == 9) printf("\n");
  }
 
 
  return 0;
}
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
27.12.2014, 01:17
Цитата Сообщение от maverick16 Посмотреть сообщение
просто у меня выдает ошибку
Просто, возможно, у тебя не тот Билдер. Фичи C++11 доступны в 64-битном компиляторе, то есть, начиная с XE3...

Не по теме:

Цитата Сообщение от FraidZZ Посмотреть сообщение
Вот и купи мне капли в глазки
Я? Вот еще ({тут твоя подпись}) :D



Добавлено через 1 минуту
Цитата Сообщение от FraidZZ Посмотреть сообщение
Даже вообще без C++
Можно пойти дальше, и решить это вообще без компьютера, кстати
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
27.12.2014, 01:20

Не по теме:

Цитата Сообщение от volvo Посмотреть сообщение
тут твоя подпись
Фыркать - моя прерогатива! У меня аватарка к этому склонная ;)



Цитата Сообщение от volvo Посмотреть сообщение
Фичи C++11 доступны в 64-битном компиляторе
То есть 32-битные системы пролетают вообще? Просто интересуюсь...
0
0 / 0 / 0
Регистрация: 23.12.2014
Сообщений: 10
27.12.2014, 01:33
А можете написать эту программу в Builder,ну если конечно вам не сложно,просо очень нужно?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
27.12.2014, 02:15
Цитата Сообщение от maverick16 Посмотреть сообщение
можете написать эту программу в Builder
Да нормально она компилируется Билдером, даже под Win32:
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
#pragma hdrstop
#pragma argsused
 
#include <tchar.h>
#include <stdio.h>
#include <conio.h>
 
#include <iostream>
#include <iomanip>;
#include <algorithm>
#include <iterator>
 
bool myFunc(int n)
{
    return n % 2 != 0;
}
 
void print_arr(int *arr)
{
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
            std::cout << std::setw(5) << arr[10 * i + j];
        std::cout << "\n";
    }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    srand(time(0));
 
    const int arr_size = 100;
    int JJ[arr_size], NN[arr_size];
 
    for (size_t i = 0; i < arr_size; i++) JJ[i] = rand() % 100;
 
    std::cout << "JJ:\n"; print_arr(JJ);
 
    std::copy(JJ, JJ + arr_size, NN);
    std::stable_partition(NN, NN + arr_size, myFunc); // Делает то, что нужно по заданию
 
    std::cout << "NN:\n"; print_arr(NN);
    getch();
 
    return 0;
}
(тестировалось на XE2, ты ж молчишь как партизан, что у тебя за Билдер, молчи дальше...)
Миниатюры
Из массива в массив перенести числа (элементы массива)  
0
0 / 0 / 0
Регистрация: 23.12.2014
Сообщений: 10
27.12.2014, 16:03
А как примерно будет выглядеть блок схема к этой программе?
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 <cstdio>
#include <ctime>
#include <cstdlib>
 
int main ( ) {
  const int SIZE = 100;
  int JJ[SIZE], NN[SIZE];
  srand(time(NULL));
 
   for (int i = 0; i < SIZE; ++i) {
    JJ[i] = rand() % 100;
  }
 
  int cursor = 0;
   for (int i = 0; i < SIZE; ++i) {
    if (JJ[i] % 2 != 0) {
      NN[cursor] = JJ[i];
      ++cursor;
    }
  }
 
  for (int i = 0; i < SIZE; ++i) {
    if (JJ[i] % 2 == 0) {
      NN[cursor] = JJ[i];
      ++cursor;
    }
  }
  
   for (int i = 0; i < SIZE; ++i) {
    printf("%8i", NN[i]);
    if (i % 10 == 9) printf("\n");
  }
 
 
  return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.12.2014, 16:03
Помогаю со студенческими работами здесь

Перенести в массив В элементы массива А, стоящие между минимальным максимальным элементами массива
Задача 2. Дан целочисленный массив А(). Перенести в массив В элементы массива А, стоящие между минимальным максимальным элементами массива....

Сколько элементов встречается в массиве по 3 раза
Помогите, пожалуйста. &gt;&gt;&quot;Дан одномерный массив А, состоящий из N элементов. Сколько значений элементов встречается в массиве по 3...

Дан одномерный массив А, состоящий из N элементов. Перенести в начало массива все четные элементы, а в конец массива - все нечетные
Помогите, пожалуйста. &gt;&gt;&quot;Дан одномерный массив А, состоящий из N элементов. Перенести в начало массива все четные элементы, а в конец...

Из массива перенести четные элементы в другой массив.А нечетные перенести в другой массив
#include &lt;iostream&gt; #include &lt;locale.h&gt; using nmespace std; main () { int x; int z; int mas; int mas1; int mas2; ...

Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать
Добрый Вечер! Написал первую часть программы по этому заданию&quot;Ввести массив А. В массив В перенести все элементы массива А, стоящие правее...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru