这是《C语言入门实战》系列的第14篇。
上一篇:C语言入门实战(13):十进制数转二进制
文章目录
- 题目
- 要求
- 参考代码
- 代码复盘
对输入的任意n个(n<=50)1000以内的正整数按升序排序,然后输出,n由用户在程序运行时输入,请编程实现。
要求每个整数输出时占4个位置,输出格式请采用%4d。
输入输出格式示例:
参考代码输入:6<回车>
10 30 90 20 10 80<回车>
输出: 10 10 20 30 80 90
#include代码复盘#include // 对数组a中前n个元素 // 进行选择排序 void sort(int a[], int n) { int i,j; //每一轮将当前轮(下标范围[i,n-1])最小的元素交换到最前面 for(i=0;i for(j=i+1;j if(a[i]>a[j]) { //交换a[i]和a[j] int t = a[i]; a[i] = a[j]; a[j] = t; } } } } int main(int argc, char *argv[]) { int n; int a[50]; scanf("%d", &n); int i; for(i=0;i scanf("%d", &a[i]); } sort(a, n); for(i=0;i printf("%4d", a[i]); } return 0; }
- 数组可以定义为int a[50];,然后根据输入的个数n(n<50),把n个数据存放在数组的前n个元素中,再对a[0]~a[n-1]进行排序。
- 定义了一个排序函数void sort(int a[], int n) {},内部通过选择排序算法对数组a中的前n个元素进行从小到大排序。



