下面是一个简单的程序,用于将 **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[] 中的数字。
#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