Помогите решить........
Задан массив с количеством элементов N. Сформировать два массива: в первый включить элементы исходного массива с четными номерами а во второй с нечетными
B с четными
C с нечётными
-------
Код:
N=10
J=1
K=1
for i from 1 to N
{
if ( i mod 2 = 0 )
{
//Чётный номер
B(J) = A(i)
J = J + 1
}
else
{
//нечетный номер
C(K) = A(i)
K = K + 1
}
}
J=1
K=1
for i from 1 to N
{
if ( i mod 2 = 0 )
{
//Чётный номер
B(J) = A(i)
J = J + 1
}
else
{
//нечетный номер
C(K) = A(i)
K = K + 1
}
}
Вот так бы такой намёк :)
Код:
#include <iostream>
#include <iterator>
using namespace std;
int main(void){
const int N = 10;
int arr[N] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int a[N/2 + (int)(N%2 != 0)];
int b[N/2 + (int)(N%2 != 0)];
int* pa, *pb;
pa = &a[0];
pb = &b[0];
for(const int* p = &arr[0]; p != arr + N; ++p){
if((int)(p - arr) & 1)
*pa++ = *p; // заполнение не чётных
else
*pb++ = *p; // заполнение чётных
}
copy(a, pa, ostream_iterator<int>(cout, " "));
cout << endl;
copy(b, pb, ostream_iterator<int>(cout, " "));
cout << endl;
return 0;
}
#include <iterator>
using namespace std;
int main(void){
const int N = 10;
int arr[N] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int a[N/2 + (int)(N%2 != 0)];
int b[N/2 + (int)(N%2 != 0)];
int* pa, *pb;
pa = &a[0];
pb = &b[0];
for(const int* p = &arr[0]; p != arr + N; ++p){
if((int)(p - arr) & 1)
*pa++ = *p; // заполнение не чётных
else
*pb++ = *p; // заполнение чётных
}
copy(a, pa, ostream_iterator<int>(cout, " "));
cout << endl;
copy(b, pb, ostream_iterator<int>(cout, " "));
cout << endl;
return 0;
}