- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
#include <iostream.h>
#include <stdlib.h>
#define make(a,b) new a[b];
#define init(a,b) for(int i=0; i<b; i++) a[i]=random(10);
#define MyType int
template<class type>
void sort(type *m,int n)
{
type *m1 = m;
for(int i=0; i<n-1; i++)
{
for(int j=0; j<n-i-1; j++)
{
if (*m1>*(m1+1))
{
MyType temp;
temp=*m1;
*m1=*(m1+1);
*(m1+1)=temp;
}
m1++;
}
m1=m;
}
}
template<class type>
void input(type *m,int num)
{
type *m1=m;
for(int i=0;i<num; i++)
{
cin>>*m1;
m1++;
}
m1=m;
cout << endl;
}
template<class type>
void output(type *m, int n)
{
for(int i=0;i<n; i++)
{
cout << *(m+i)<<" ";
}
}
main()
{
int len;
cout << "Vvedite razmer massiva" << endl;
cin >> len;
MyType *mas1 = make(MyType,len);
input(mas1,len);
//init(mas1,len);
output<MyType>(mas1,len);
sort<MyType>(mas1,len);
cout<<endl;
output<MyType>(mas1,len);
cout<<endl;
system("pause");;
}
Делалось на Borland C++ 5.02 , что прикольно без макроса make , если память выделяется просто в теле, то ревет, что память ниразу не выделена . Делали ее часика в 4 утра к зачету, препод конечно прибалдел от таких раскладов, но покопавшись ничего сам сделать не смог, плюнул на это дело и зачет поставил.