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
广告