应用工具:Dev-C++ 5.11
(数组与循环知识的运用,更高的可更改性)
最新升级版本:C入门者笔记&里程碑篇-1:一个强大的排序程序模板 ԅ(¯﹃¯ԅ)_HerrosA的博客-CSDN博客
局限性:限定为10个数字,不可多不可少;
相较之前公式的提升:较新的排序法 | 更高的可更改性 | 直观地排序过程
若要进行公式改变,实现排序限定数的数量发生改变,只需要将所有的10改为n,所有的9改为n-1,n指你想要将多少个数排序
小提示:对于数组的学习理解要慢慢适应从动态的或整体上进行的思考方式,精准一对一的推算理解容易陷入混乱,打击信心,失去乐趣;要明确认清它是一组而不是一个哦
#include<stdio.h>
#include<conio.h>
int main()
{
//输入数字部分
int R,P,num[10];
printf("Please enter 10 numbers:\n| | | | | | | | | |\n");
for(P=0;P<10;P++){
scanf("%d",&num[P]);
}printf("\n");
//循环排序部分
for(R=0;R<9;R++){//R,表示进行(对于较大的数字)下沉次数
for(P=0;P<9-R;P++){//P,表示从头开始进行的数字位置交换次数,每进行一次下沉,最后一位一定是最大的数,所以P减去R
if(num[P]>num[P+1]){
num[P]=(num[P]+num[P+1])-(num[P+1]=num[P]);//值的交换式
}
}
for(P=0;P<10;P++){printf("%d ",num[P]);}//直观显示排序阶段
printf("\n");
}
//输出排序结果部分
printf("\nthe order of the numbers from small to large is:\n");
for(P=0;P<10;P++){printf("%d ",num[P]);
}
getch();
}