Нужно что бы линейный массив выводил только четные числа, нечетные удалял(или просто не выводил).
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <ctime>
using namespace std;
int ElementSum(int N)
{
int sum = 0;
while (N > 0)
{
sum += N % 10;
N /= 10;
}
return sum;
}
int main()
{
setlocale (0,"rus");
int N;
cout << "Введите размер массива:" << endl;
cout << "N = ";
cin >> N;
int* A = new int[N];
for (int i=0; i<N; i++)//генерирует случайные числа
{
*(A+i)=rand()%10;
}
cout << "Сортируем\n";
for (int i = 0; i < N; i++)//сортирует
{
for (int j = N - 1; j > i; j--)
{
if (ElementSum(A[j]) > ElementSum(A[j-1]))
{
swap(A[j], A[j-1]);
}
}
}
cout << "Искомый массив:" << endl;
for (int i = 0; i < N; i++)// на вывод
{
cout << A[i] << " ";
}
cout << endl;
return 0;
}
C/C++
С++ Помогите пожалуйста исправить, дополнить код.
Какой смысл вычислять сумму цифр для однозначных чисел? Всегда приводи условие задачи. Пока что твоя программа с добавленным в нее выводом только четных чисел, если не вставлять в нее миллион фигурных скобок и пустых строк, выглядит так:
#include "iostream"
#include "algorithm"
#include "cstdlib"
#include "ctime"
using namespace std;
int main(){
int n; cout<<"N: "; cin>>n; int* a=new int[n];
for(int i=0;i< n;i++)cout<<(a[i]=rand()%10)<<' '; cout<< endl;
sort(a,a+n); reverse(a,a+n);
for(int i=0;i< n;i++)if(~a[i]&1)cout<< a[i]<<' '; cout<< endl;}
#include "iostream"
#include "algorithm"
#include "cstdlib"
#include "ctime"
using namespace std;
int main(){
int n; cout<<"N: "; cin>>n; int* a=new int[n];
for(int i=0;i< n;i++)cout<<(a[i]=rand()%10)<<' '; cout<< endl;
sort(a,a+n); reverse(a,a+n);
for(int i=0;i< n;i++)if(~a[i]&1)cout<< a[i]<<' '; cout<< endl;}
#include <algorithm>
#include <iostream>
#include <random>
#include <iterator>
using namespace std;
int main() {
uniform_int_distribution<> uid(1, 9);
mt19937 gen{ random_device()() };
auto rnd = [&] { return uid(gen); };
cout << "Length: ";
size_t length;
cin >> length;
auto box = new int[length];
const auto end = box + length;
generate(box, end, rnd);
auto itr = ostream_iterator<int>(cout, " ");
copy(box, end, itr);
puts("");
auto even = new int[length];
auto is_even = [](const int x) { return !(x % 2); };
auto last = copy_if(box, end, even, is_even);
copy(even, last, itr);
puts("");
sort(box, end, greater<>());
copy(box, end, itr);
puts("");
sort(even, last, greater<>());
copy(even, last, itr);
puts("");
delete[] even;
delete[] box;
}
#include <iostream>
#include <random>
#include <iterator>
using namespace std;
int main() {
uniform_int_distribution<> uid(1, 9);
mt19937 gen{ random_device()() };
auto rnd = [&] { return uid(gen); };
cout << "Length: ";
size_t length;
cin >> length;
auto box = new int[length];
const auto end = box + length;
generate(box, end, rnd);
auto itr = ostream_iterator<int>(cout, " ");
copy(box, end, itr);
puts("");
auto even = new int[length];
auto is_even = [](const int x) { return !(x % 2); };
auto last = copy_if(box, end, even, is_even);
copy(even, last, itr);
puts("");
sort(box, end, greater<>());
copy(box, end, itr);
puts("");
sort(even, last, greater<>());
copy(even, last, itr);
puts("");
delete[] even;
delete[] box;
}
/*
Чётные значение делятся на 2 без остатка
*/
for (int i = 0; i < N; i++)// на вывод
{
if(A[i] % 2 == 0)
cout << A[i] << " ";
}
cout << endl;
Чётные значение делятся на 2 без остатка
*/
for (int i = 0; i < N; i++)// на вывод
{
if(A[i] % 2 == 0)
cout << A[i] << " ";
}
cout << endl;
Похожие вопросы
- Помогите, пожалуйста, исправить ошибку в коде (C++).
- Помогите пожалуйста исправить код
- Помогите, пожалуйста, срочно. Прокомментировать код на Си
- Помогите дополнить код СИ, пж.
- Помогите пожалуйста написать код.(C++)
- Программирование, с++, изменить, либо дополнить код
- Помогите пожалуйста написать код на c++, выводящий имя, фамилию и дату рождения нескольких человек
- Помогите пожалуйста написать код на C++
- Срочно!!! Помогите пожалуйста написать код к задачке на с++! Заранее спасибо!
- Помогите пожалуйста с кодом на с++