#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
const MAX = 100;
struct MANG
{
int data[MAX];
int n;
};
void Khoitao(MANG &);
int Is_Empty(MANG &);
void Nhap(MANG &);
void Xuat(MANG);
int Tong_Duong(MANG);
int Tong_Am(MANG);
int Dem_Duong(MANG);
int Dem_Am(MANG);
float TBC_Am(MANG);
float TBC_Duong(MANG);
void TBC(MANG);
int Is_SNT(int);
void SNT(MANG);
void swap(int &,int &);
int KT_Chan(int);
int Sosanh(int,int);
void SapXepChan(MANG &);
void SapXepTang(MANG &);
void ChenX(MANG &);
int Search(MANG, int, int);
void Delete_Trung(MANG &);
int Is_DoiXung(MANG );
void menu();
void main ()
{
menu();
}
void Khoitao(MANG &A)
{
A.n=0;
}
int Is_Full(MANG A)
{
if(A.n == MAX)
return 1;
return 0;
}
int Is_Empty(MANG &A)
{
if(0 == A.n)
return 1;
return 0;
}
void Nhap(MANG &A)
{
cout<<"\nNhap So Phan Tu: ";
cin>>A.n;
if(A.n > MAX)
{
A.n = MAX;
cout<<"\nBan Chi Duoc Nhap "<<MAX<<" Phan Tu";
}
for(int i = 0;i < A.n; i++)
{
cout<<"\nNhap Phan Tu Thu "<<i + 1<<": ";
cin>>A.data[i];
}
}
void Xuat(MANG A)
{
cout<<"\nDu Lieu Trong Mang: ";
for(int i = 0;i < A.n; i++)
cout<<A.data[i]<<" ";
}
int Sign(int n)//Kiem Tra 1 So La Am Hay Duong
{
if(n > 0)
return 1;
if(n < 0)
return -1;
return 0;
}
int Tong_Duong(MANG A)
{
int tong=0;
for(int i=0;i<A.n;i++)
{
if(Sign(A.data[i]) == 1)
tong+=A.data[i];
}
return tong;
}
int Tong_Am(MANG A)
{
int tong=0;
for(int i=0;i<A.n;i++)
{
if(Sign(A.data[i]) == -1)
tong+=A.data[i];
}
return tong;
}
int Dem_Duong(MANG A)
{
int dem=0;
for(int i=0;i<A.n;i++)
{
if(Sign(A.data[i]) == 1)
dem++;
}
return dem;
}
int Dem_Am(MANG A)
{
int dem=0;
for(int i=0;i<A.n;i++)
{
if(Sign(A.data[i]) == -1)
dem++;
}
return dem;
}
float TBC_Am(MANG A)
{
float TBC=0;
if(Dem_Am(A)!=0)
TBC=float(Tong_Am(A))/Dem_Am(A);
else
TBC=0;
return TBC;
}
float TBC_Duong(MANG A)
{
float TBC=0;
if(Dem_Duong(A)!=0)
TBC=float(Tong_Duong(A))/Dem_Duong(A);
else
TBC=0;
return TBC;
}
void TBC(MANG A)
{
if(TBC_Duong(A)==0)
cout<<"\nTrong Mang Khong Co So Duong";
else
cout<<"\nTrung Binh Cong Cac So Duong La: "<<TBC_Duong(A);
if(TBC_Am(A)==0)
cout<<"\nTrong Mang Khong Co So Am";
else
cout<<"\nTrung Binh Cong Cac So Am La: "<<TBC_Am(A);
}
int ChiaHet(int n, int i)
{
if(n%i == 0)
return 1;
return 0;
}
//Ham kiem tra 1 so co phai la SNT
int Is_SNT(int n)
{
if(n<2)
return 0;
for(int i = 2;i < n; i++)
if(ChiaHet(n,i) == 1)
return 0;
return 1;
}
//Ham xuat ra cac SNT trong MANG
void SNT(MANG A)
{
cout<<"\nCac SNT: ";
for(int i=0;i<A.n;i++)
{
if(Is_SNT(A.data[i]) == 1)
cout<<A.data[i]<<" ";
}
}
//Ham hoan vi 2 so a va b
void swap(int &a,int &b)
{
int t;
t = a;
a = b;
b = t;
}
//Ham kiem tra 1 so co la so chan
int Is_Chan(int x)
{
if(x%2 == 0)
return 1;
return 0;
}
int Sosanh(int a,int b)
{
if(a>b)
return 1;
if(a==b)
return 0;
return -1;
}
void SapXepChan(MANG &A)
{
for(int i=0;i<A.n-1;i++)
{
if(Is_Chan(A.data[i]) == 1)
{
for(int j=i+1;j<A.n;j++)
{
if(Is_Chan(A.data[j]) == 1)
{
if(Sosanh(A.data[i],A.data[j]) == 1)
{
swap(A.data[i],A.data[j]);
}
}
}
}
}
}
void Selection_Sort(MANG &A)
{
int i,j,pos;
int min;
for(i=0;i<A.n-1;i++)
{