Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //ARRAY
- //Lâm Hữu Thiện
- //ngày 13/01/2013.
- #include <stdio.h>
- #include <conio.h>
- #include <Windows.h>
- #define MAX 100
- //Prototype
- void NhapMang( int a[], int &n);
- void XuatMang ( int a[], int n);
- void ChenPhanTu (int a[], int &n );
- void ThemPhanTu( int a[], int &n);
- void Swap( int &iNum1, int &iNum2 );
- bool tang ( int a, int b);
- bool giam ( int a, int b);
- void Sort ( int a[], int left, int right, bool (*func) ( int, int ));
- //chương trình chính
- int main()
- {
- int a[MAX], n = 0;
- char key = 0;
- printf("\tNhap mang ban dau:\n");
- NhapMang(a,n);
- do
- {
- system("cls");
- printf("\tMang: \n");
- XuatMang(a,n);
- printf("\n\n\t1. Chen Phan Tu");
- printf("\n\t2. Them Phan Tu");
- printf("\n\t3. Sap Xep tang");
- printf("\n\t4. Sap xep giam");
- printf("\n\t0.Ket Thuc");
- do
- {
- key = getch();
- }
- while ( key < '0' || key > '4');
- switch (key)
- {
- case '1':
- {
- system("cls");
- printf("\tChen Phan Tu\n\n");
- ChenPhanTu(a,n);
- printf("\n\tKet Qua:\n");
- XuatMang(a,n);
- getch();
- break;
- }
- case '2':
- {
- system("cls");
- printf("\tThem Phan Tu\n\n");
- ThemPhanTu(a,n);
- printf("\n\tKet Qua:\n");
- XuatMang(a,n);
- getch();
- break;
- }
- case '3':
- {
- system("cls");
- printf("\tSap Xep Tang\n\n");
- Sort(a,0,n,tang);
- printf("\n\tKet Qua:\n");
- XuatMang(a,n);
- getch();
- break;
- }
- case '4':
- {
- system("cls");
- printf("\tSap Xep Giam\n\n");
- Sort(a,0,n,giam);
- printf("\n\tKet Qua:\n");
- XuatMang(a,n);
- getch();
- break;
- }
- }
- }
- while (key != '0');
- return 0;
- }
- //hàm nhập mảng số nguyên
- void NhapMang(int a[], int &n )
- {
- do
- {
- printf ("\tNhap so luong phan tu: ");
- scanf("%d",&n);
- }
- while ( n > MAX || n < 0 );
- for ( int i = 0; i < n; i++)
- {
- printf ("\tPhan tu thu %d: ", i+1);
- scanf("%d",&a[i]);
- }
- }
- //hàm xuất mảng số nguyên
- void XuatMang( int a[], int n )
- {
- printf("\t");
- for ( int i = 0; i < n; i++)
- {
- printf("%d ",a[i]);
- }
- }
- //hàm chèn một phần tử vào mảng số nguyên
- //sau khi chèn, tăng kích thước lên 1 đơn vị
- void ChenPhanTu (int a[], int &n )
- {
- if ( n + 1 > MAX )
- {
- printf("\n\tThieu bo nho, khong chen duoc gia tri");
- return;
- }
- int iViTri = 0;
- int iGiaTri = 0;
- do
- {
- printf("\n\tNhap vi tri can chen [0, %d]: ", n-1);
- scanf("%d", &iViTri);
- }
- while ( iViTri < 0|| iViTri >= n );
- printf("\n\tNhap Gia tri can chen: ");
- scanf("%d", &iGiaTri);
- for ( int i = n; i > iViTri; i--)
- {
- a[i] = a[i-1];
- }
- a[iViTri] = iGiaTri;
- n++;
- }
- //Hàm thêm phần tử vào mảng
- void ThemPhanTu( int a[], int &n)
- {
- int iGiaTri = 0;
- if ( n + 1 > MAX )
- {
- printf("\n\tThieu bo nho, khong chen duoc gia tri");
- return;
- }
- printf("\tNhap Gia tri can them vao: ");
- scanf("%d", &iGiaTri);
- a[n] = iGiaTri;
- n++;
- }
- //hàm hoán vị 2 số nguyên
- void Swap( int &iNum1, int &iNum2 )
- {
- int iTemp= iNum1;
- iNum1 = iNum2;
- iNum2 = iTemp;
- }
- //hàm xác định tăng
- bool tang ( int a, int b)
- {
- if ( a > b )
- return true;
- return false;
- }
- bool giam ( int a, int b )
- {
- if ( a < b )
- return true;
- return false;
- }
- void Sort ( int a[], int left, int right, bool (*func) ( int, int ))
- {
- for ( int i = left; i < right; i++)
- {
- for ( int j = i + 1; j < right; j++)
- {
- if (func(a[i],a[j]))
- Swap(a[i],a[j]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement