Chương trình dưới đây thực hiện sắp xếp mảng tăng dần và giảm dần, được viết theo dạng hàm. Ngoài ra chương trình cũng viết luôn 2 hàm nhập và xuất mảng.
#include <stdio.h> void Nhap(int number[], int n){ for(int i = 0; i < n ; i++){ printf("NHAP a[%d]: ",i); scanf("%d",&number[i]); } } void Xuat(int number[],int n){ for(int i = 0; i < n ; i++){ printf("%d \n",number[i]); } } void SapXepTang(int number[], int n){ //khai bao bien trung gian de hoan vi int trunggian; //thuc hien thuat toan sap xep chon for(int i = 0; i < n - 1; i++){ for(int j = i + 1; j < n; j ++){ //neu tim thay phan tu be hon phan tu dang xet thi doi cho 2 phan tu do cho nhau if(number[i] > number[j]){ //hoan vi 2 phan tu trunggian = number[i]; number[i] = number[j]; number[j] = trunggian; } } } } void SapXepGiam(int number[], int n){ //khai bao bien trung gian de hoan vi int trunggian; //thuc hien thuat toan sap xep chon for(int i = 0; i < n - 1; i++){ for(int j = i + 1; j < n; j ++){ //neu tim thay phan tu lon hon phan tu dang xet thi doi cho 2 phan tu do cho nhau if(number[i] < number[j]){ //hoan vi 2 phan tu trunggian = number[i]; number[i] = number[j]; number[j] = trunggian; } } } } int main(){ //khai bao so luong phan tu int n; //nhap vao n printf("NHAP VAO N: "); scanf("%d",&n); //khai bao mang n phan tu int number[n]; //goi ham nhap va xuat phan tu Nhap(number,n); printf("MANG SAU KHI NHAP\n"); Xuat(number,n); //goi ham sap xep tang va hien thi mang sau khi sap xep tang SapXepTang(number,n); printf("MANG SAU KHI DUOC SAP XEP TANG DAN\n"); Xuat(number,n); //goi ham sap xep giam va hien thi mang sau khi sap xep giam SapXepGiam(number,n); printf("MANG SAU KHI DUOC SAP XEP GIAM DAN\n"); Xuat(number,n); }