1. Bài tập sắp xếp mảng tăng dần trong C

Để làm giải bài tập này ta cần dùng các cách nhập xuất cơ bản, sử dụng mảng một chiều trong C và các phép toán học cơ bản.

Đầu vào sẽ là các phần tử của mảng, yêu cầu của bài toán là sắp xếp mảng tăng dần.

2. Lời giải

Để giải được bài tập sắp xếp mảng tăng dần bằng ngôn ngữ C bạn phải có kiến thức về toán học cơ bản, có kiến thức về nhập xuất cơ bản và cách sử dụng mảng một chiều trong C.

Các bước thực hiện bài toán như sau:

Bước 1: khai báo biến int n dùng để nhập số phần tử của mảng, khai báo mảng tĩnh int a[100].

Bước 2: Nhập vào số phần tử của mảng nếu n<1 hoặc n>100 yêu cầu nhập lại.

Bước 3: Dùng vòng lặp for bắt đầu từ int i = 0 kết thúc tại i< n và mỗi lần i tăng 1, nhập vào từ bàn phím giá trị cho các phần tử trong mảng.

Bước 4: Dùng vòng lặp for bắt đầu từ int i = 0 kết thúc tại i< n và mỗi lần i tăng 1, in các phần tử trong mảng ra màn hình.

Bước 5: Dùng hai vòng for lồng nhau: vòng lặp for bắt đầu từ int i = 0 kết thúc tại i< n-1 và mỗi lần i tăng 1 và vòng lặp for bắt đầu từ int j = i+1 kết thúc tại i< n và mỗi lần j tăng 1; trong vòng for j ta dùng if với điều kiện a[i] > a[j] thì ta đổi chỗ a[i] với a[j].

Bước 6: In mảng đã sắp ra màn hình.

Chương trình giải bài tập sắp xếp mảng tăng dần bằng ngôn ngữ C như sau :

#include<stdio.h>
int main()
{
    // khai bao n
    int n;
    // khai bao mang mot chieu a co toi da 100 phan tu
    int a[100];
    // khai bao dem
    int dem=0;
    // nhap vo so phan tu cua mang
    do{
        printf("Nhap so phan tu mang:");
        scanf("%d", &n);
    }while(n<1 || n>100);
    
    //nhap vao cac phan tu cua mang
    for(int i=0; i< n; i++)
    {
        printf("Nhap a[%d] = ",i);
        scanf("%d", &a[i]);
    }
    printf("Mang sau khi nhap la:\n");
    //hien thi mang ra man hinh
    for(int i=0; i< n; i++)
    {
        printf("%d \t",a[i]);
    }
    for(int i=0; i< n-1; i++)
    {
        for(int j=i+1; j< n; j++)
        if(a[i]>a[j])//neu a[i] > a[j]
        {
            //dung bien temp dung de doi cho a[i] voi a[j]
            int temp = a[i];
            a[i] = a[j];
            a[j] = temp;
        }
    }
    printf("\nMang sau khi sap xep la:\n");
    //hien thi mang sap xep ra man hinh
    for(int i=0; i< n; i++)
    {
        printf("%d \t",a[i]);
    }
    
}

Ví dụ tôi nhập mảng 5 phần tử là 5, 7, 1, 9, 2

Kết quả:

Nhap so phan tu mang:5
Nhap a[0] = 5
Nhap a[1] = 7
Nhap a[2] = 1
Nhap a[3] = 9
Nhap a[4] = 2
Mang sau khi nhap la:
5 7 1 9 2
Mang sau khi sap xep la:
1 2 5 7 9

3. Tổng kết

Để thực hiện giải bài tập sắp xếp mảng tăng dần bằng ngôn ngữ C bạn đọc cần phải có kiến thức cơ bản về ngôn ngữ lập trình C, bạn cần nắm vững cách nhập xuất căn bản, các phép toán học cơ bản và cách sử dụng mảng một chiều trong C.