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

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

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

Запись в качестве элементов массива - C++

22.05.2012, 22:26. Просмотров 507. Ответов 10
Метки нет (Все метки)

Помогите пожалуйста.
переписать сначала отрицательные,а потом положительные элементы массива BC,содержащего N элементов,в массив ZBC.

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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    int bc[30]={1,-2,3,4,5}, zbc[15]={-2,18,19,20,21},i=0, k=0,a=0;
    for (i=0; i<5; i++)
    {
        if (bc[i]<0)
         k=k+1;
        zbc[i]=k;
        if (bc[i]>=0)
                a=a+1;
            zbc[i]=a; 
            cout<<zbc[i]<<' ';
        }
    
    cout  <<zbc[i];
    getch();
 
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2012, 22:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись в качестве элементов массива (C++):

Удаление из одного массива элементов второго массива и запись результата в третий - C++
Есть массив masA (длина lenA), есть массив masB (длина lenB). Необходимо из массива masA удалить элементы, входящие в массив masB и...

Запись элементов массива структурного типа.Из старого массива- в новый - C++
Здравствуйте.Возможно, в названии темы не совсем понятно &quot;чего я хочу&quot;, поэтому напишу задание: &quot;1.Сформировать динамический массив...

Запись в обратном порядке элементов массива - C++
Дан массив целых чисел А (20). Записать в обратном порядке элементы массива с индексами с пятого по пятнадцатый. #include &lt;stdio.h&gt; ...

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

Реализовать обработку и файловую запись/чтение массива с большим количеством элементов - C++
такую задачу поставили... имеется 600 000 элементов. Каждому элементу присвоить значение и по 300 000 записать в файл. массив такое...

Найти сумму тех элементов массива, цифровая запись которых дает четную сумму цифр, а также найти максимальный элемент массива - C++
Вот, что есть.Помогите довести до ума! #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; void...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
22.05.2012, 22:53 #2
Так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
 
int main() {
   int bc[] = {1, -2, 3, 4, 5};
   std::size_t const N = sizeof(bc) / sizeof(*bc);
   int zbc[N];
     
   for (std::size_t i = 0, negative = 0, positive = N; i != N; ++i) {
      if (bc[i] < 0) {
         zbc[negative++] = bc[i];
      } else {
         zbc[--positive] = bc[i];
      }
   }
   
   for (std::size_t i = 0; i != N; ++i) {
      std::cout << zbc[i] << " ";
   }
}
http://liveworkspace.org/code/8cf48b...de042e32c9264c

Добавлено через 2 минуты
Или так:
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
#include <iostream>
 
 
int main() {
   int bc[] = {1, -2, 3, 4, 5};
   std::size_t const N = sizeof(bc) / sizeof(*bc);
   int zbc[N];
   std::size_t index = 0;
   
   for (std::size_t i = 0; i != N; ++i) {
      if (bc[i] < 0) {
         zbc[index++] = bc[i];
      }
   }
   
   for (std::size_t i = 0; i != N; ++i) {
      if (!(bc[i] < 0)) {
         zbc[index++] = bc[i];
      }
   }
   
   for (std::size_t i = 0; i != N; ++i) {
      std::cout << zbc[i] << " ";
   }
}
http://liveworkspace.org/code/324614...832f2f07e6cefc
1
Zealot
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 35
22.05.2012, 23:15  [ТС] #3
Огромнейшее спасибо!

Добавлено через 20 минут
gray_fox,
Помогите пожалуйста еще переписать просто элементы имеющие нечетные индексы в zbc,в качестве элементов массива zbc с четными индексами.Или помогите встать на путь истинный
0
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
22.05.2012, 23:20 #4
Цитата Сообщение от Zealot Посмотреть сообщение
Помогите пожалуйста еще переписать просто элементы имеющие нечетные индексы в zbc,в качестве элементов массива zbc с четными индексами.
Не понял. Поменять чётные с нечётными что ли? Как то так:
C++
1
2
3
4
5
#include <algorithm>
 
for (std::size_t i = 1; i < size; i += 2) {
    std::swap(zbc[i - 1], sbc[i]);
}
0
Zealot
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 35
22.05.2012, 23:23  [ТС] #5
из массива bc элементы с нечетными индексами,записать в качестве элементов массива zbc с четными индексами
0
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
22.05.2012, 23:28 #6
Цитата Сообщение от Zealot Посмотреть сообщение
из массива bc нечетные индексы записать в zbc в качестве четных
Ааа...))) Так попробуй:
C++
1
2
3
for (std::size_t i = 1; i < size; i += 2) {
    zbc[i] = bc[i - 1];
}
0
Zealot
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 35
22.05.2012, 23:52  [ТС] #7
gray_fox,
даёт какие-то космические числа=\
0
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
23.05.2012, 00:00 #8
Цитата Сообщение от Zealot Посмотреть сообщение
даёт какие-то космические числа=\
?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
 
int main() {
   int bc[] = {1, -2, 3, 4, 5};
   std::size_t const N = sizeof(bc) / sizeof(*bc);
   std::size_t const size = N % 2 == 0 ? N : N + 1;
   int zbc[size] = {0};
   
   for (std::size_t i = 1; i < size; i += 2) {
      zbc[i] = bc[i - 1];
   }
   
   for (std::size_t i = 0; i != size; ++i) {
      std::cout << zbc[i] << " ";
   }
}
http://liveworkspace.org/code/ac2942...e0c7beda79d09d
:-/
1
Zealot
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 35
23.05.2012, 00:06  [ТС] #9
gray_fox,
спасибо огромное,видимо проблема была в том что я вместо "size" писал N,и он ругался на меня страшными числами.
0
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
23.05.2012, 00:08 #10
Цитата Сообщение от Zealot Посмотреть сообщение
ругался на меня страшными числами
Скорее массив не проинициализировали. Здесь будет мусор (т.е. что угодно):
C++
1
int zbc[size];
Здесь нули:
C++
1
int zbc[size] = {0};
0
Zealot
0 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 35
23.05.2012, 00:11  [ТС] #11
gray_fox, еще раз спасибо за науку
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2012, 00:11
Привет! Вот еще темы с ответами:

Имя массива в качестве индекса - C++
Здравствуйте. Объясните, пожалуйста, как работает такой код: int a={1, 2, 3}; for (int i=0; i&lt;3; i++) cout &lt;&lt; i &lt;&lt; endl; ...

Переменная в качестве размера массива - C++
Добрый вечер. Вопрос таков: мне нужно установить количество символов массива, равное переменной, но ошибка в том, что выражение должно...

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

как передать аргумент в качестве массива - C++
Ребята нужно использовать алгоритм Quicksort, сам алгоритм есть и работает и есть динамический массив до начала сортировки, но вот как...


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

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

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