C 语言程序实现数组降序排序


2022年3月16日, Learn eTutorial
2005

C 语言中的排序是什么?

在这个程序中,我们需要将给定的数组按降序排序,使元素从大到小排列。排序是将数组或列表中的数字按某种顺序(升序或降序)重新排列的过程。在这里,您将看到如何将数组按降序排序。排序非常方便,在实际生活中有很多应用层面的用途。在 C 语言编程中,根据用于排序元素的技术不同,使用不同种类的排序方法。每种模式都使用不同的样式,并且对于最佳情况和最坏情况都具有不同的复杂性。C 语言中的一些排序方式有:

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

如何将数字按降序排列?

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

在这个 C 语言程序中,我们接受用户想要排序的数字的数量。然后我们使用一个 `for 循环` 从用户那里接受数字并将其保存到数组 **number[]** 中。通过使用嵌套 `for 循环`,将数组的每个元素与下一个数字进行比较;如果该数字小于下一个数字,那么我们将使用一个临时变量交换这些数字。最后,使用 `for 循环` 显示按降序排序的数组。

在这个程序中,使用了 `for 循环`。for 循环的语法如下:

for (initializationStatement; testExpression; updateStatement)

     {
          // codes
     }

这里初始化语句只执行一次。最初,测试表达式被求值。如果测试表达式为假,我们终止循环。但如果测试表达式为真,则执行 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]**。

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

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

步骤 11:使用 `for 循环` 显示按降序排列的数字,即数组 **number[i]** 中的数字。

C 语言源代码

                                          #include <stdio.h>

void main() {
  int number[30];
  int i, j, a, n;
  printf("Enter the value of N\n");
  scanf("%d", & n);
  printf("Enter the numbers \n");
  for (i = 0; i < n; ++i)
    scanf("%d",& number[i]);
  for (i = 0; i < n; ++i) /* sorting begins ...*/ {
    for (j = i + 1; j < n; ++j) {
      if (number[i] < number[j]) {
        a = number[i];
        number[i] = number[j];
        number[j] = a;
      }
    }
  }
  printf("The numbers arranged in descending order are given below\n");
  for (i = 0; i < n; ++i) {
    printf("%d\n", number[i]);
  }
} /* End of main() */
                                      

输出

Enter the value of N
6

Enter the numbers
10
35
67
100
42
688

The numbers arranged in descending order are given below
688
100
67
42
35
10