LATEST

Cách sắp xếp mảng trong C / C++

Trong bài viết này, codehow sẽ hướng dẫn các bạn cách sắp xếp mảng trong C / C++. Đây là dạng bài tập cơ bản để các bạn thao tác với mảng một chiều trong C / C++.

Có hai cách sắp xếp một mảng, đó là sắp xếp theo thứ tự tăng dần và theo thứ tự giảm dần. Tùy thuộc vào yêu cầu của bài toán mà chúng ta chọn cách sắp xếp nào.

Ví dụ: Giả sử mình có mảng Number = {4, 2, 7, 1} là các số tự nhiên. Mảng Number sau khi sắp xếp theo thứ tự tăng dần là {1, 2, 4, 7} và thứ tự giảm dần là {7, 4, 2, 1}.

Vậy làm sao để thực hiện chương trình sắp xếp mảng trong C / C++, các bạn hãy bắt đầu cùng mình ngay bây giờ nhé!

Cách sắp xếp mảng trong C / C++ tăng dần

Trong phần này, mình sẽ thực hiện chương trình sắp xếp mảng trong C / C++ theo thứ tự tăng dần. Cụ thể theo từng bước như sau.

Bước 1: Tạo hàm sort_number() với hai tham số truyền vào đó là mảng cần sắp xếp và số lượng phần tử trong mảng. Trong hàm sẽ sử dụng hai vòng lặp for để lặp từng phần tử, so sánh và sắp xếp các phần tử theo tứ tự tăng dần.

void sort_numbers_ascending(int number[], int count)
{
   int temp, i, j, k;
   for (j = 0; j < count; ++j)
   {
      for (k = j + 1; k < count; ++k)
      {
         if (number[j] > number[k])
         {
            temp = number[j];
            number[j] = number[k];
            number[k] = temp;
         }
      }
   }
   printf("Các số sau khi được sắp xếp tăng dần:\n");
   for (i = 0; i < count; ++i)
      printf("\n%d",number[i]);
}

Bước 2: Yêu cầu người dùng nhập vào số lương phần từ và giá trị cho các phần tử.

int i, count, number[20];
printf("Nhập số lương phần tử trong mảng:");
scanf("%d", &count);
printf("\nNhập giá trị cho từng phần tử trong mảng:\n");
for (i = 0; i < count; ++i)
    scanf("%d", &number[i]);

Bước 3: Gọi hàm sort_number() để sắp xếp và hiển thị kết quả ra màn hình.

sort_numbers_ascending(number, count);

Chương trình C:

#include <stdio.h>
#include <string.h>

void sort_numbers_ascending(int number[], int count)
{
   int temp, i, j, k;
   for (j = 0; j < count; ++j)
   {
      for (k = j + 1; k < count; ++k)
      {
         if (number[j] > number[k])
         {
            temp = number[j];
            number[j] = number[k];
            number[k] = temp;
         }
      }
   }
   printf("Các số sau khi được sắp xếp tăng dần:\n");
   for (i = 0; i < count; ++i)
      printf("\n%d",number[i]);
}

int main()
{
   int i, count, number[20];
   printf("Nhập số lương phần tử trong mảng:");
   scanf("%d", &count);
   printf("\nNhập giá trị cho từng phần tử trong mảng:\n");
    
   for (i = 0; i < count; ++i)
      scanf("%d", &number[i]);
  
   sort_numbers_ascending(number, count);
   printf("\n-------------------------------\n");
   printf("Chương trình này được đăng tại codehow.net");
}

Kết quả:

bai22 02 PNG

Chương trình C++:

#include <iostream>
using namespace std;
void sort_numbers_ascending(int number[], int count)
{
   int temp, i, j, k;
   for (j = 0; j < count; ++j)
   {
      for (k = j + 1; k < count; ++k)
      {
         if (number[j] > number[k])
         {
            temp = number[j];
            number[j] = number[k];
            number[k] = temp;
         }
      }
   }
   cout<<"Các số sau khi được sắp xếp tăng dần:\n";
   for (i = 0; i < count; ++i)
      cout<<"\n"<< number[i];
}
int main()
{
   int i, count, number[20];
  
   cout<<"Nhập số lương phần tử trong mảng:";
   cin>>count;
   cout<<"\nNhập giá trị cho từng phần tử trong mảng:\n";
    
   for (i = 0; i < count; ++i)
      cin>>number[i];
  
   sort_numbers_ascending(number, count);
   cout<<"\n-------------------------------\n";
   cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai22 01 PNG

Cách sắp xếp mảng trong C / C++ giảm dần

Tương tự như cách sắp xếp mảng trong C / C++ tăng dần, để sắp xếp mảng theo thứ tự giảm dần ta chỉ cần thay đổi điều kiện một chút mà thôi. Các bạn có thể tham khảo chương trình dưới đây nhé.

Chương trình C:

#include <stdio.h>
#include <string.h>

void sort_numbers_ascending(int number[], int count)
{
   int temp, i, j, k;
   for (j = 0; j < count; ++j)
   {
      for (k = j + 1; k < count; ++k)
      {
         if (number[j] < number[k])
         {
            temp = number[j];
            number[j] = number[k];
            number[k] = temp;
         }
      }
   }
   printf("Các số sau khi được sắp xếp giảm dần:\n");
   for (i = 0; i < count; ++i)
      printf("\n%d",number[i]);
}

int main()
{
  int i, count, number[20];
  
   printf("Nhập số lương phần tử trong mảng:");
   scanf("%d", &count);
   printf("\nNhập giá trị cho từng phần tử trong mảng:\n");
    
   for (i = 0; i < count; ++i)
      scanf("%d", &number[i]);
  
   sort_numbers_ascending(number, count);
   printf("\n-------------------------------\n");
   printf("Chương trình này được đăng tại codehow.net");
}

Kết quả:

bai22 03 PNG

Chương trình C++:

#include <iostream>
using namespace std;
void sort_numbers_ascending(int number[], int count)
{
   int temp, i, j, k;
   for (j = 0; j < count; ++j)
   {
      for (k = j + 1; k < count; ++k)
      {
         if (number[j] < number[k])
         {
            temp = number[j];
            number[j] = number[k];
            number[k] = temp;
         }
      }
   }
   cout<<"Các số sau khi được sắp xếp giảm dần:\n";
   for (i = 0; i < count; ++i)
      cout<<"\n"<< number[i];
}
int main()
{
   int i, count, number[20];
  
   cout<<"Nhập số lương phần tử trong mảng:";
   cin>>count;
   cout<<"\nNhập giá trị cho từng phần tử trong mảng:\n";
    
   for (i = 0; i < count; ++i)
      cin>>number[i];
  
   sort_numbers_ascending(number, count);
   cout<<"\n-------------------------------\n";
   cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai22 04 PNG

Như vậy là chúng ta đã cùng nhau tìm hiểu về cách sắp xếp mảng trong C / C++. Có hai cách sắp xếp đó là tăng dần và giảm dần, các bạn có thể lựa chọn tùy vào bài toán nhé. Chúc các bạn thực hiện thành công !!!

Cùng chuyên mục:

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán tính lũy thừa trong C / C++

Thuật toán tính lũy thừa trong C / C++

Top