Кратко о главном(программе):
вводим количество элементов массива(программа генерирует элементы)
проводится сортировка по возрастанию, убираются нули и одинаковые элементы
на экран выводятся положительные и отрицательные числа
все построено на функциях
ВОТ КОД:
#include <iostream>
#include <cstdlib> //подключаем rand
using namespace std;
int sortirovka (int *a, const int n);//обработка массива
int positive (int *positive_arr, const int count_p);//положительный числа
int negative (int *negative_arr, const int count_n);//отрицательные числа
int generator (int *a, const int n);//ввод данных в массив(генератор)
int main()
{
srand(time(0));
setlocale(LC_ALL, "");
int n;
int *a = new int [n];
cout << "Введите размер массива,\nn="; cin >> n;
generator (a, n);
cout << "\n";
cout << "***Начальный массив\n";
for (int i=0;i<n;i++)
cout << a[i] << " ";
sortirovka (&a[0],n);//проводим обработку массива
cout << "\n\n***Массив после обработки\n";
for (int i=0;i<n;i++)
cout << a[i] << " ";
cout << "\n\n***РЕЗУЛЬТАТ\n";
cout << "Положительные числа:\n";
positive (&a[0],n);
cout << "\n";
cout << "Отрицательные числа:\n";
negative (&a[0],n);
cout << "\n\n";
delete []a;
}
int generator (int *a, const int n)
{
for (int i=0; i<n; i++)
{
/*
cout << "a[" << i << "]=";
cin >> a[i];
*/
a[i]=rand()%21-9;
}
}
int positive (int *a, const int n)
{
int *positive_arr = new int;
int count_p=0;
for (int i=0; i<n; i++)
{
if (a[i]>0)
{
positive_arr[count_p]=a[i];
count_p++;
}
}
for (int i=0;i<count_p;i++)
cout << positive_arr[i] << " ";
}
int negative (int *a, const int n)
{
int *negative_arr = new int;
int count_n=0;
for (int i=0; i<n; i++)
{
if (a[i]<0)
{
negative_arr[count_n]=a[i];
count_n++;
}
}
for (int i=0;i<count_n;i++)
cout << negative_arr[i] << " ";
}
int sortirovka( int *a, const int n)
{
int temp;
for (int z=0;z<n;z++)
for (int i=0;i<n;i++)
{
if (a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
for (int z=0;z<n;z++)
for (int i=0;i<n;i++)
{
if (a[i]!=a[i+1])
a[i]=a[i];
else
a[i]=a[i]*0;
}
return (*a);
}Программа работает, но проблема в том, что она обрезает последний(самый большой положительный) элемент..
Проблема в функции сортировки, только вот что не так, я как-то не вьеду
Помогите, завтра сдавать уже