Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chương trình C để sắp xếp một mảng theo thứ tự tăng dần

Vấn đề

Sắp xếp mảng đã cho theo thứ tự giảm dần hoặc tăng dần dựa trên mã đã được viết.

Giải pháp

Mảng là một nhóm các mục dữ liệu có liên quan có chung một tên chung. Một giá trị cụ thể trong một mảng được xác định với sự trợ giúp của "số chỉ mục" của nó.

Khai báo mảng

Cú pháp khai báo một mảng như sau -

datatype array_name [size];

Ví dụ:

float marks [50]

Nó khai báo 'mark' là một mảng chứa 50 phần tử float.

int number[10]

Nó khai báo ‘number’ là một mảng để chứa tối đa 10 hằng số nguyên.

Mỗi phần tử được xác định bằng cách sử dụng "chỉ mục mảng".

Dễ dàng truy cập các phần tử mảng bằng cách sử dụng chỉ mục mảng.

Logic chúng tôi sử dụng để sắp xếp các phần tử mảng theo thứ tự tăng dần như sau -

for (i = 0; i < n; ++i){
   for (j = i + 1; j < n; ++j){
      if (num[i] > num[j]){
         a = num[i];
         num[i] = num[j];
         num[j] = a;
      }
   }
}

Chương trình

Sau đây là chương trình C để sắp xếp một mảng theo thứ tự tăng dần -

#include <stdio.h>
void main (){
   int num[20];
   int i, j, a, n;
   printf("enter number of elements in an array\n");
   scanf("%d", &n);
   printf("Enter the elements\n");
   for (i = 0; i < n; ++i)
      scanf("%d", &num[i]);
   for (i = 0; i < n; ++i){
      for (j = i + 1; j < n; ++j){
         if (num[i] > num[j]){
            a = num[i];
            num[i] = num[j];
            num[j] = a;
         }
      }
   }
   printf("The numbers in ascending order is:\n");
   for (i = 0; i < n; ++i){
      printf("%d\n", num[i]);
   }
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

enter number of elements in an array
5
Enter the elements
12
23
89
11
22
The numbers in ascending order is:
11
12
22
23
89