C 语言程序,用于将 n 个数字按升序排序


2022年2月4日, Learn eTutorial
1951

什么是排序?

下面是一个简单的程序,用于将 **n** 个数字按升序排序。排序是将数组或列表中的数字按某种顺序(升序或降序)重新排列的过程。排序非常有用,在实际生活中有很多应用。在 C 语言编程中,根据用于排序元素的技术不同,有不同种类的排序方法。每种方法都使用不同类型的技术,并且对于最佳情况和最坏情况都具有不同的复杂性。C 语言中的一些排序方式有:

  • 冒泡排序
  • 选择排序
  • 归并排序
  • 插入排序
  • 快速排序
  • 堆排序

如何将数字按升序排序?

升序意味着将数字从最小到最大排列。在这个 C 语言程序中,我们需要将数组的元素按升序排列。例如,如果有一组数字如“**1, 5, 3, 8, 7, 6**”,我们需要将其更改为“**1, 3, 5, 6, 7, 8**”,即按升序排序。

在这个 C 语言程序中,首先,我们接受用户想要检查的数字计数。然后,我们使用 for 循环从用户那里获取数字并将其保存到数组 number[] 中。通过使用嵌套的 'for 循环',我们检查数组的每个元素与下一个元素;如果数字大于下一个数字,那么我们将使用一个临时变量交换数字。最后,在完成 for 循环的迭代后,使用 for 循环显示已排序的数组。

算法

步骤 1:包含头文件以在 C 程序中使用内置函数。

步骤 2:声明整数变量 i, j, a, n 和数组 number[30]

步骤 3:将 N 的值读入变量 'n'。

步骤 4:使用 for 循环将数字读入数组 number[i]

步骤 5:设置 i=0

步骤 6:检查 i

步骤 7:设置 j=i+1

步骤 8:检查是否 number[i] > number[j],如果为真,则交换数字。

步骤 9:将 'j' 增加 1 并执行步骤 7。

步骤 10:将 'i' 增加 1 并执行步骤 6。

步骤 11:使用 for 循环显示按升序排列的数组 number[] 中的数字。

C 语言源代码

                                          #include <stdio.h>

void main()
{

  int i, j, a, n, number[30];
  printf("Enter the value of N\n");
  scanf("%d", & n);
  printf("Enter the numbers \n"); /* accept the elements from the user */
 for (i = 0; i < n; ++i)
  {
       scanf("%d", & number[i]);
  }
  for (i = 0; i < n; ++i)
  {
    for (j = i + 1; j < n; ++j)
    {
      if (number[i] > number[j]) /* swapping the elements in the ascending order */
      {
        a = number[i];
        number[i] = number[j];
        number[j] = a;
      }
    }
  }

  printf("The numbers arranged in ascending order are given below\n"); /* display the output  */

  for (i = 0; i < n; ++i)
    printf("%d\n", number[i]);

} /* End of main() */
                                      

输出

Enter the value of N
5

Enter the numbers
80
20
67
10
45

The numbers arranged in ascending order are given below
10
20
45
67
80