Найти в массиве нечётные числа

Уровень сложности:

Дан массив размера n, заполнить его случайными числами, Найти все нечётные числа массива.

Читаем у нас на сайте — Как работать с массивами. После создания массива, его необходимо заполнить случайными числами, а для этого нужно воспользоваться генератором случайных чисел. Пример работы программы смотрим ниже:

// array_even_numbers.cpp: определяет точку входа для консольного приложения.

#include "stdafx.h"
#include <iostream>
#include <ctime>
using namespace std;

int main(int argc, char* argv[])
{
    srand(time(0)); // генерация случайных чисел
    cout << "Enter size array: ";
    int array_size;
    cin >> array_size;
    int *ptrarray = new int [array_size]; // создание динамического массива 
        for (int count = 0; count < array_size; count++)
            ptrarray[count] = (rand() % 99 + 1); //заполнение массива случайными числами с масштабированием от 1 до 99
        cout << "array = ";
        for (int count = 0; count < array_size; count++)
            cout << ptrarray[count] << " "; // печать первоначального массива
        cout << "\nRezult = ";
        for (int count = 0; count < array_size; count++)
            if ((ptrarray[count] % 2) != 0) // отсеиваем чётные числа
            cout << ptrarray[count] << " "; // печать нечётных значений элементов массива
        delete [] ptrarray; // высвобождение памяти
        cout << endl;
    system("pause");
    return 0;
}

Создаётся динамический массив, который заполняется случайными числами в диапазоне [1;99] и выполняется поиск нечётных чисел. Вот результат:

CppStudio.com

Enter size array: 20
array = 60 78 78 77 75 94 49 7 8 81 35 94 8 38 29 31 76 42 12 67
Rezult = 77 75 49 7 81 35 29 31 67

Следующие статьи помогут вам в решении данной задачи:
Автор: admin
Дата: 11.09.2012
Поделиться:

Комментарии

  1. Lee Amstrong

    #include <iostream>
    #include <vector>
    #include <chrono>
    #include <random>
    
    int main(int argc, char const *argv[]) {
       std::vector<int> numbers;
       std::default_random_engine generator(std::chrono::system_clock::now().time_since_epoch().count());
       std::uniform_int_distribution<int> distribution(1,100);
       int size;
       std::cout << "Введите кол-во генерируемых чисел: ";
       std::cin >> size;
       if (std::cin.fail()) {
          std::cout << "Шота сломалось :(" << '\n';
          return -1;
       }
       for (size_t i = 0; i < size; i++) {
          numbers.push_back(distribution(generator));
       }
       std::cout << "Содержимое массива: ";
       for (auto iterator = numbers.begin(); iterator != numbers.end(); ++iterator) {
          std::cout << " " << *iterator;
       }
       std::cout << '\n';
    
       std::cout << "Нечетные числа: ";
       for (auto iterator = numbers.begin(); iterator != numbers.end(); ++iterator) {
          if (*iterator % 2) {
             std::cout << " " << *iterator;
          }
       }
       std::cout << '\n';
       return 0;
    }
  2. chachic

    #include <iostream>
    #include <time.h>
    #include <valarray>
    #include <queue>

    using namespace std;
    int main ()
    {
    setlocale(LC_CTYPE,»rus»);
    queue<int> qw; // Очередь для хранения номеров в масиве
    srand(time(NULL));
    int n=0;
    cout <<«Введите размерность массива :»;
    cin>>n;
    valarray<int> mas(n); //создаем массив
    for(int i =0;i<n;i++) mas[i]=rand()%99; //заполняем рандомными 1-99
    for(int i = 0;i<mas.size();i++)
    {
    if((mas[i]%2)!=1) //если 1 то четное если нет то не четное
    {
    qw.push(i); //записываем номера в очередь
    }
    }
    cout<<endl;
    for(int i = 0;i<mas.size();i++)
    {
    cout <<endl<<mas[i];
    }
    cout<<endl;
    while (qw.size()) //пока очередь не пуста
    {
    cout <<endl<<mas[qw.front()]; //выводи елементы выборки
    qw.pop(); //выталкиваем последний елеиент из очереди
    }
    cin.get();
    return 0;
    }

  3. Eduard_P

    Eduard_P

    То же, только с применением контейнера

    и сортировкой значений по возрастанию (C++11)

    //#include <cstdlib>
    #include <ctime>//для функции time()
    #include <iostream>//ввод вывод печати
    #include <vector>//для векторов
    #include <iterator>//ostream_iterator
    #include <algorithm>//для функции sort
    
    using namespace std;
    
    int main(int argc, char** argv) {
        srand(time(NULL));
        vector <int>vecarray;//объявляем вектор (априоре динамич.массив)
        cout << "Enter size array: ";
        int n;
        cin >> n;//ввод количества элементов массива
        
        for (int i=0; i<n; i++)//заполнение массива
            vecarray.push_back(rand()%100);
        sort(vecarray.begin(), vecarray.end());//сортировка значений по возрастанию
        
        cout <<"array = ";
        //вывод на экран значений вектора
        copy(vecarray.begin(), vecarray.end(), ostream_iterator<int>(cout, " "));
       
        cout << "\nRezult = "; 
        //вывод на экран нечетных значений массива
          for ( int i=0; i<vecarray.size(); ++i ){
              if(vecarray[i]%2 != 0)
              cout << vecarray[i]<<" ";} 
        cout << "\n" ;
        return 0;
    }
    
    
  4. colt

    #include "stdafx.h"
    #include "iostream"
    #include "windows.h"
    
    using namespace std;
    
    class Array1D
    {
    public:
    	Array1D(short arraysize)
    	{
    		arr=new short[arraysize];
    		_length=arraysize;
    		for (short i=0;i<arraysize;i++) arr[i]=rand()%100;
    	}
    	~Array1D() {delete [] arr;}
    	short at(short position) {return arr[position];}
    	void at(short position, short value) {arr[position]=value;}
    	short length() {return _length;}
    protected:
    	short *arr, _length;
    };
    
    bool isEven(short integer)	//функция возвращает true, если число делится на 2 нацело и false если нет
    {
    	if ((integer%2)==0) return true;
    	else return false;
    }
    
    void runtime()
    {
    	short arrsize;
    	cout<<"Введите размер массива: ";
    	cin>>arrsize;	//вводим размер массива
    	if (arrsize<1)
    	{
    		cout<<"Размер массива должен быть больше нуля\n";
    	}
    	else 
    	{
    		cout<<"Массив: ";
    		Array1D random(arrsize);								//конструируем массив из случайных чисел требуемого размера 
    		for (short i=0;i<arrsize;i++) cout<<random.at(i)<<" ";	//выводим его
    		cout<<"\nРезультат: ";
    		for (short i=0;i<arrsize;i++) if (isEven(random.at(i))) cout<<random.at(i)<<" ";	//выводим только чётные элементы
    		cout<<endl;
    	}
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        SetConsoleCP(1251);			//эти две функции вместе с заголовочным файлом windows.h
        SetConsoleOutputCP(1251);	// и шрифтом командной строки Lucida Console обеспечивают корректный ввод и вывод кирилицы
    	while (true)
    	{
    		system("CLS");
    		runtime();
    		system("PAUSE");
    	}
        return 0;
    }
  5. Anufree

    #include <conio.h>
    #include <iostream>
    #include <random>
    #include <time.h>
    
    using std::cout;
    using std::cin;
    using std::endl;
    
    int main()
    {
    	setlocale(LC_ALL, "Russian");
    
    	int *arr, size;
    
    	cout << "Enter size array: ";
    	cin >> size;
    
    	srand(time(NULL));
    
    	arr = new int[size];
    	
    	for (int i(0); i < size; i++)
    		cout << (arr[i] = rand() % size + 1) << ' ';
    	
    	cout << endl;
    
    	for (int i(0); i < size; i++)
    		if (arr[i] & 1)
    			cout << arr[i] << ' ';
    
    	delete[]arr;
    		
    	_getch();
    
    	return 0;
    }

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.