Bài ôn thi

 avatar
unknown
c_cpp
a month ago
3.9 kB
7
Indexable
#include<stdio.h>

//Ham Nhap Mang
void NhapMang(int a[], int &n)
{
    printf("Moi ban nhap so ptu mang : ");
    scanf("%d",&n);
    // printf("Mang co ptu : %d", n);  ( Test xem mang co loi ko )
    for(int i=0; i<n; i++)
    {
        printf("Nhap ptu thu a[%d] : ",i);
        scanf("%d",&a[i]);
    }
}


//Ham Xuat Mang
void XuatMang(int a[], int n)
{
    printf("\nXuat cac gtri trong mang : \n");
    for(int i=0; i<n; i++)
    {
        printf(" %d ",a[i]);
    }
    printf("\n");
}


//Ham Tim Kiem Abao dep hon
void TimKiem(int a[], int socantim, int n)
{
    bool timthay = timthay;
    for(int i=0; i<n; i++)
    {
        if(a[i]==socantim)
        {
            printf("So %d can tim nam o vi tri a[%d]. \n",socantim, i);
            timthay=true;
        }
    }
    if(timthay==false)
    {
        printf("Khong tim thay so %d trong mang.",socantim);
    }
}


//Ham Tim Kiem cach 2 sgk
int Tim(int a[], int n, int x)
{
    for(int i=0; i<n; i++)
    {
        if(x==a[i])
        {
            return i;
        }
    }
    return -1;
}


//Ham Xoa Ptu trong Mang ( cach 1 )
void XoaPtu(int a[], int &n, int socanxoa)
{
    /*int vitri=Tim(a,n,socanxoa);
    printf("\nso can xoa o a[%d] -> %d\n",vitri, a[vitri]);
    for(int i=vitri; i<n-1; i++)
    {
        printf("a[%d]=%d thay bang a[%d]=%d\n", i, a[i], i+1, a[i+1]);
        a[i]=a[i+1];
    }
    n-=1;*/
    int vitri=Tim(a,n,socanxoa);
    for(int i=vitri; i<n-1; i++)
    {
        a[i]=a[i+1];
    }
    n-=1;
}


//Ham Chen Phan Tu
void ChenPTu(int a[], int &n, int socanchen, int vitrichen)
{
    for(int i=n; i>vitrichen; i--)
    {
        a[i]=a[i-1];
    }
    a[vitrichen]=socanchen;
    n+=1;
}

// Ham sap xep mang bang thuat toan Bubble Sort
void bubbleSort(int arr[], int n) {
    int i, j, temp;
    
    // Vong lap ngoai: chay qua tung phan tu cua mang
    for (i = 0; i < n - 1; i++) {
        // Vong lap trong: so sanh va doi cho cac cap phan tu lien ke
        for (j = 0; j < n - i - 1; j++) {
            // Neu phan tu hien tai lon hon phan tu ke tiep
            if (arr[j] > arr[j + 1]) {
                // Doi cho hai phan tu
                temp = arr[j];           // Luu gia tri phan tu hien tai vao bien tam
                arr[j] = arr[j + 1];     // Gan phan tu ke tiep cho phan tu hien tai
                arr[j + 1] = temp;       // Gan gia tri bien tam cho phan tu ke tiep
            }
        }
    }
}
//Ham Chinh va Goi Ten
int main()
{
    int a[100];  //Khai bao mang a co 100ptu
    int n=5; 
    NhapMang(a,n); //Goi ham Nhap Mang
    XuatMang(a,n); //Goi ham Xuat Mang
    int socantim; //Goi ham TimKiem
    printf("\n");
    printf("Moi ban nhap so can tim : "); //Nho ngta nhap so can tim
    scanf("%d",&socantim);  


    // TimKiem(a,socantim,n); ( cach 1)
    int vitri = Tim(a,n,socantim);
    if(vitri==-1)
    {
        printf("Ko tim thay");
    }
    else
    {
        printf("Tim thay o vi tri a[%d]",vitri);
    }


    //Doi vi tri
    int vitri1;
    int vitri2;
    vitri1=Tim(a,n,8);
    vitri2=Tim(a,n,9);
    int tam=a[vitri1];
    a[vitri1]=a[vitri2];
    a[vitri2]=tam;
    XuatMang(a,n); //Goi lan 2 de xuat mang da doi vi tri
    
    //Xoa 
    int socanxoa;
    printf("Nhap so can xoa : ");
    scanf("%d",&socanxoa);
    printf("\n\nQua trinh xoa : ");
    XoaPtu(a,n,socanxoa);
    printf("\nSau khi xoa : ");
    XuatMang(a,n); //Goi lan 3 de xuat mang da xoa ptu
    
    //Chen
    int socanchen;
    int vitrichen;
    printf("Moi nhap so can chen: ");
    scanf("%d",&socanchen);
    printf("Moi vi tri so can chen: ");
    scanf("%d",&vitrichen);
    ChenPTu(a,n,socanchen,vitrichen-1);
    XuatMang(a,n);

    //SapXep
    bubbleSort(arr,n);
    XuatMang(a,n);
    
}
Editor is loading...
Leave a Comment