M
Miller85
Привет всем! Не могу понять как реализовать следующую задачу... ЗАДАНИЕ: Вводимые массивы сортировать по убыванию, а затем из них удалять через один отрицательные эллементы. Значит все сделал, только не могу сообразить как сделать удаление отрицательных эллементов да еще и через один... Вот мой код...
C++:
#include<iostream>
#include<iomanip>
#include<conio.h>
#include<stdlib.h>
using namespace std;
void inmass(int[7],int&,int&);
void outmass(int[7],int,int);
void sort(int[7],int);
void main()
{
setlocale(LC_ALL,"Russian");
int x[7],m,n,kol=0;
char ch;
do{
inmass(x,m,n);
cout<<setw(30)<<"Введен массив:"<<endl;
outmass(x,m,n);
sort(x,m);
cout<<endl<<setw(30)<<"Получен массив:"<<endl;
outmass(x,m,n);
kol++;
cout<<endl<<"Продолжить работу (y/n)? ";
cin>>ch;}
while(ch=='y'||ch=='Y');
cout<<"Обработано массивов: "<<kol<<endl;
cout<<" Конец программы.";
getch();
}
void inmass(int a[7],int&n,int&p)
{
cout<<"Задайте длину исходного массива(<=7):"<<endl;
cout<<"Длина: ";cin>>n;
cout<<"Введите 1, если массив вводится вручную,"<<endl
<<"или любой другой символ, если она формируется"<<endl
<<"датчиком случайных чисел ";
char dat;
cin>>dat;
if(dat=='1'){
cout<<"Введите исходный массив"<<endl;
for(int i=0;i<n;i++)
cin>>a[i];}
else{
cout<<"Введите целое положительное число"<<endl
<<"для инициализации датчика"<<endl
<<"случайных чисел: "<<endl;
unsigned int b;
cin>>b;
srand(b);
for(int i=0;i<n;i++)a[i]=(rand()-16383)%100;
}}
void outmass(int a[7],int n,int q)
{
for(int i=0;i<n;i++)
cout<<setw(5)<<a[i];
cout<<endl;
}
void sort(int a[7],int q)
{
int z;
for(int i=1;i<q-1;i++)
for(int j=q-1;j>=i;j--)
if(a[j-1]<a[j])
{
z=a[j-1];
a[j-1]=a[j];
a[j]=z;
}
}