C Program to Sort an Array in Ascending Order


An array is a collection of similar data elements stored in a contiguous memory location.

Problem Description

This program will implement a one-dimentional array of some fixed size, filled with some random numbers, then will sort all the filled elements of the array.

Problem Solution

1. Create an array of fixed size (maximum capacity), lets say 10.
2. Take n, a variable which stores the number of elements of the array, less than maximum capacity of array.
3. Iterate via for loop to take array elements as input, and print them.
4. The array elements are in unsorted fashion, to sort them, make a nested loop.
5. In the nested loop, the each element will be compared to all the elements below it.
6. In case the element is greater than the element present below it, then they are interchanged
7. After executing the nested loop, we will obtain an array in ascending order arranged elements.

Program/Source Code

Here is source code of the C program to sort the array in an ascending order. The program is successfully compiled and tested using Turbo C compiler in windows environment. The program output is also shown below.

  2.     /*
  3.      * C program to accept N numbers and arrange them in an ascending order
  4.      */
  6.     #include <stdio.h>
  7.     void main()
  8.     {
  10.         int i, j, a, n, number[30];
  11.         printf("Enter the value of N \n");
  12.         scanf("%d", &n);
  14.         printf("Enter the numbers \n");
  15.         for (i = 0; i < n; ++i)
  16.             scanf("%d", &number[i]);
  18.         for (i = 0; i < n; ++i) 
  19.         {
  21.             for (j = i + 1; j < n; ++j)
  22.             {
  24.                 if (number[i] > number[j]) 
  25.                 {
  27.                     a =  number[i];
  28.                     number[i] = number[j];
  29.                     number[j] = a;
  31.                 }
  33.             }
  35.         }
  37.         printf("The numbers arranged in ascending order are given below \n");
  38.         for (i = 0; i < n; ++i)
  39.             printf("%d\n", number[i]);
  41.     }
Program Explanation

1. Declare an array of some fixed capacity, lets say 30.
2. From users, take a number N as input, which will indicate the number of elements in the array (N <= maximum capacity)
3. Iterating through for loops (from [0 to N) ), take integers as input from user and print them. These input are the elements of the array.
4. Now, create a nested for loop with i and j as iterators.
5. Start the sorting in ascending order by extracting each element at position i of outer loop.
6. This element is being compared to every element from position i+1 to size-1 (means all elements present below this extracted element)
7. In case any of the extracted element is greater than the element below it, then these two interchange their position, else the loop continues.
8. After this nested loop gets executed, we get all the elements of the array sorted in ascending order.

Note: Join free Sanfoundry classes at Telegram or Youtube
Runtime Test Cases
Enter the value of N
Enter the numbers
The numbers arranged in ascending order are given below

Sanfoundry Global Education & Learning Series – 1000 C Programs.

Here’s the list of Best Books in C Programming, Data Structures and Algorithms.

Subscribe to our Newsletters (Subject-wise). Participate in the Sanfoundry Certification contest to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!

Youtube | Telegram | LinkedIn | Instagram | Facebook | Twitter | Pinterest
Manish Bhojasia - Founder & CTO at Sanfoundry
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Subscribe to his free Masterclasses at Youtube & technical discussions at Telegram SanfoundryClasses.