Консультация № 151051
19.11.2008, 11:12
0.00 руб.
0 4 3
Дана последовательность натуральных чисел аь аъ..., ап. Создать массив из четных чисел этой последовательности. Если та¬ких чисел нет, то вывести сообщение об этом факте.



Решить задачу с применением действий над элементами массива. Решить данную задачу как можно проще.!

Приложение:
Решить задачу с применением действий над элементами массива. Решить данную задачу как можно проще.!

Обсуждение

Неизвестный
19.11.2008, 12:06
общий
это ответ
Здравствуйте, Попов Александр Олегович!
Код в приложении. Будут вопросы, задавайте в минифоруме.

Приложение:
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;

int main()
{
srand(time(NULL));

//Количество чисел в последовательности
const int n=10;

//Массив для хранения элементов последовательности
int arr[n];

for(int i=0;i<n;i++){
//Заполнение массива
arr[i]=rand()%10-5;
//Вывод на экран
cout<<arr[i]<<'\t';
}

cout<<endl;

//массив четных элементов
int arr1[n];
//Заполнение его нулями
for(int i=0;i<n;i++)
arr1[i]=0;


//Количество четных элементов
int count=0;

for(int i=0,j=0;i<n;i++){
if(!(arr[i]%2)){
count++;
arr1[j]=arr[i];
j++;
}
}

cout<<endl;

//Вывод массива
for(int i=0;i<count;i++){
cout<<arr1[i]<<'\t';
}


return 0;
}
Неизвестный
19.11.2008, 12:39
общий
это ответ
Здравствуйте, Попов Александр Олегович!

Предположим что последовательность уже есть

#include<iostream>

void main ()

{
int mas[20]; // исходная последовательность
int chet[20]; // массив с четными числами
int count=0;

for(int i=0;i<20;i++)

{
if(mas[i][j]>0)

{
chet[i]=mas[i];
count++; // считаем четные элементы
}

}

if(count==0)

{
cout<<"\nChetnych elementov net!\n";
}

}
Неизвестный
19.11.2008, 13:22
общий
Немного надо изменить вывод массива четных чисел. Если четных чисел нет, выводится сообщение. Если есть, выводится массив.
Код:

if (count>0){
//Вывод массива
for(int i=0;i<count;i++)
cout<<arr1[i]<<'\t';
}
else cout<<"4ETHbIX 4uCEJI HET"<<endl;

Неизвестный
20.11.2008, 04:05
общий
это ответ
Здравствуйте, Попов Александр Олегович!
Задача очень просто решается с использованием класса vector из STL. Во время заполнения начального массива сразу проверяем его элементы на четность. Если элемент четный, заносим его в массив с четными элементами. Реализацию смотрите в коде
Код:
#include <time.h>
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <vector>

using namespace std;

int main(int argc, char* argv[]) {

int n = 10;

vector<int> v(n);
vector<int> v_even;

srand((unsigned) time(NULL));

int rand_limit = 100;

cout << "Initial array:" << endl;

for(int i=0; i<n; i++) {

v[i] = rand()%rand_limit;

if(v[i]%2 == 0)
v_even.push_back(v[i]);

cout << setw(4) << v[i];
}

cout << endl << "Array with even elements:" << endl;
for(int i=0; i<v_even.size(); i++)
cout << setw(4) << v_even[i];


return 0;
}
Форма ответа