Системное администрирование
Сложная задача по с++. решить
Дан массив: А [M] (M вводится с клавиатуры). Необходимо удалить из массива четные или нечетные значения. Пользователь вводит данные в массив, а также с помощью меню решает, что нужно удалить.
Кау удалить не знаю, но вот программа, которая заменит чётные или нечётные числа на 0
#include"pch.h"
#include
using namespace std;
int main() {
setlocale(LC_ALL, "RUS");
int m;
cout << "Введите количество элементов массива arr:";
cin >> m;
int * arr = new int[m];
for (int i = 0; i < m; i++) {
cout << "Введите значение элемента arr[" << i << "]: ";
cin >> arr[i];
}
cout << "Ваш массив:" << endl;
for (int i = 0; i < m; i++) {
cout << arr[i] << "\t";
}
cout << endl;
int s;
cout << "Для удаления чётных чисел введите 1, для удаления нечётных чисел введите 2: ";
cin >> s;
while (s != 1 && s != 2) {
cout << "Неправильный ввод. Повторите попытку: ";
cin >> s;
}
for (int i = 0; i < m; i++) {
if (s == 1) {
if (arr[i] % 2 == 0) {
arr[i] = 0;
}
}
if (s == 2) {
if (arr[i] % 2 != 0) {
arr[i] = 0;
}
}
}
cout << "Ваш массив после удаления цифр: " << endl;
for (int i = 0; i < m; i++) {
cout << arr[i] << "\t";
}
}
#include"pch.h"
#include
using namespace std;
int main() {
setlocale(LC_ALL, "RUS");
int m;
cout << "Введите количество элементов массива arr:";
cin >> m;
int * arr = new int[m];
for (int i = 0; i < m; i++) {
cout << "Введите значение элемента arr[" << i << "]: ";
cin >> arr[i];
}
cout << "Ваш массив:" << endl;
for (int i = 0; i < m; i++) {
cout << arr[i] << "\t";
}
cout << endl;
int s;
cout << "Для удаления чётных чисел введите 1, для удаления нечётных чисел введите 2: ";
cin >> s;
while (s != 1 && s != 2) {
cout << "Неправильный ввод. Повторите попытку: ";
cin >> s;
}
for (int i = 0; i < m; i++) {
if (s == 1) {
if (arr[i] % 2 == 0) {
arr[i] = 0;
}
}
if (s == 2) {
if (arr[i] % 2 != 0) {
arr[i] = 0;
}
}
}
cout << "Ваш массив после удаления цифр: " << endl;
for (int i = 0; i < m; i++) {
cout << arr[i] << "\t";
}
}
#inсludе <iоstrеаm>
#inсludе <аlgоrithm>
#inсludе <vесtоr>
int mаin()
{
sizе_t n;
std::соut << "Еntеr аrrау dimеnsiоn: ";
std::сin >> n;
std::vесtоr<int> numbеrs;
fоr (sizе_t i = 0; i < n; ++i)
{
std::соut << "Еntеr А [" << i << "]: ";
int а;
std::сin >> а;
numbеrs.рush_bасk(а);
}
std::соut << "Еntеr уоur сhоiсе, 0 - dеlеtе оdd, 1 - еvеn еlеmеnts (vаluеs): ";
int b;
std::сin >> b;
аutо lаmbdа = b ? [](int num) { rеturn (num % 2) == 0; } : [](int num) { rеturn (num % 2) != 0; };
аutо еnd = std::rеmоvе_if(numbеrs.bеgin(), numbеrs.еnd(), lаmbdа);
numbеrs.еrаsе (еnd, numbеrs.еnd());
std::соut << "Nеw аrrау: " << std::еndl;
fоr (int num : numbеrs)
std::соut << num << " ";
rеturn 0;
}
#inсludе <аlgоrithm>
#inсludе <vесtоr>
int mаin()
{
sizе_t n;
std::соut << "Еntеr аrrау dimеnsiоn: ";
std::сin >> n;
std::vесtоr<int> numbеrs;
fоr (sizе_t i = 0; i < n; ++i)
{
std::соut << "Еntеr А [" << i << "]: ";
int а;
std::сin >> а;
numbеrs.рush_bасk(а);
}
std::соut << "Еntеr уоur сhоiсе, 0 - dеlеtе оdd, 1 - еvеn еlеmеnts (vаluеs): ";
int b;
std::сin >> b;
аutо lаmbdа = b ? [](int num) { rеturn (num % 2) == 0; } : [](int num) { rеturn (num % 2) != 0; };
аutо еnd = std::rеmоvе_if(numbеrs.bеgin(), numbеrs.еnd(), lаmbdа);
numbеrs.еrаsе (еnd, numbеrs.еnd());
std::соut << "Nеw аrrау: " << std::еndl;
fоr (int num : numbеrs)
std::соut << num << " ";
rеturn 0;
}
ПРОСТО МЕГА СЛОЖНАЯ ЗАДАЧА, ИЛОН МАСК БЫ ПРИЗАДУМАЛСЯ
#include
using namespace std;
int main()
{
setlocale(LC_ALL,"rus");
int massiv[7]={1,2,3,4,5,6,7};
int newMassiv[7];
int length=0;
cout << "Исходный массив" << endl;
for (int i=0; i<7; i++)
{
cout << massiv[i] << " ";
}
cout << endl << "Удалим нечётные числа и получим" << endl;
for (int i=0; i<7; i++)
{
if (massiv[i]%2==0)//если i-е значение массива нечётное
{
newMassiv[length]=massiv[i];//то помещаем его в новый массив
length++;
}
}
for (int i=0; i<length; i++)
{
cout << newMassiv[i] << " ";
}
return 0;
}
Принцип должен быть ясен, осталось замутить динамический массив и вариацию выбора с 1 - четные 2 - не четные. Сам думай, а то вообще халява.
#include
using namespace std;
int main()
{
setlocale(LC_ALL,"rus");
int massiv[7]={1,2,3,4,5,6,7};
int newMassiv[7];
int length=0;
cout << "Исходный массив" << endl;
for (int i=0; i<7; i++)
{
cout << massiv[i] << " ";
}
cout << endl << "Удалим нечётные числа и получим" << endl;
for (int i=0; i<7; i++)
{
if (massiv[i]%2==0)//если i-е значение массива нечётное
{
newMassiv[length]=massiv[i];//то помещаем его в новый массив
length++;
}
}
for (int i=0; i<length; i++)
{
cout << newMassiv[i] << " ";
}
return 0;
}
Принцип должен быть ясен, осталось замутить динамический массив и вариацию выбора с 1 - четные 2 - не четные. Сам думай, а то вообще халява.
Сергей Ляхов
напишите комментарии ко всем строкам, чтобы было понятно что есть что
Сергей Ляхов
что такое lenght ++?
Похожие вопросы
- Помогите решить задачу на Python.
- Решите задачу про прогрессивный налог python
- Задача есть, ищем решение. Как же решить? Память на хостинге заканчивается, что делать?
- Помогите решить задачи на паскале !
- Вопрос: на основании чего вы будете решать - делать эту задачу вручную или попытаться автоматизировать решение задачи?
- Помогите с задачей python
- Господа ИТшники! Часто ли вам приходится работать в условиях, когда вас передергивают с одной задачи на другую?
- Как создавать сайт одному самому, когда при этом в компьютерах обычный пользователь, а не программист? Сайт не сложный..
- Ассемблер это самый сложный язык?
- Задача на паскаль
//ниже идёт заполнение массива с клавиатуры. Заполнение происходит с помощью цикла for. Мы проходим по каждой ячейке массива и заполняем её.
for (int i = 0; i < m; i++) {
cout << "Введите значение элемента arr[" << i << "]: ";
cin >> arr[i];//ввод значения
}
//Ниже описан вывод массива. Он также, как и ввод, сделал с помощью цикла for. Единственное отличие в том, что вместо cin пишется cout. Также была использована escape-последовательность "\t" для создания табуляции между элементами массива.
cout << "Ваш массив:" << endl;
for (int i = 0; i < m; i++) {
cout << arr[i] << "\t";//операция вывода массива
}
int s;
cout << "Для удаления чётных чисел введите 1, для удаления нечётных чисел введите 2: ";
cin >> s;//ввод числа 1 или 2
//На случай, если было введено не 1 и не 2, а какое-то другое число, была разработана проверка. Она осуществляется с помощью цикла while с условием s != 1 И s != 2. Т. е. пока s не примет значение 1 или 2, цикл будет выводить, что было введено неверное число и попросит нас снова произвести ввод. При вводе 1 или 2 программа выйдет из цикла.
while (s != 1 && s != 2) {
cout << "Неправильный ввод. Повторите попытку: ";
cin >> s;
}
for (int i = 0; i < m; i++) {
if (s == 1) {
if (arr[i] % 2 == 0) {
arr[i] = 0;
}
}
if (s == 2) {
if (arr[i] % 2 != 0) {
arr[i] = 0;
}
}
}