以升序排序的C程序
问题
根据已编写的代码,对给定的数组进行降序或升序排序。
解决方案
数组是一组相关的数据项,它们共享一个公共名称。通过帮助”索引号”,可以确定数组中的特定值。
声明数组
声明数组的语法如下 −
datatype array_name [size];
例如,
float marks [50]
它声明了‘ marks ’为包含50个浮点元素的数组。
int number[10]
它将‘ number ’声明为一个数组,最多包含10个整数常量。
每个元素都通过使用“数组索引”来标识。
通过使用数组索引很容易访问数组元素。
我们用以下逻辑按升序排序数组元素:
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;
}
}
}
程序
以下是将数组按升序排序的C程序−
#include <stdio.h>
void main (){
int num[20];
int i, j, a, n;
printf("enter number of elements in an array
");
scanf("%d", &n);
printf("Enter the elements
");
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:
");
for (i = 0; i < n; ++i){
printf("%d
", num[i]);
}
}
输出
当上述程序执行时,会产生以下结果−
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