#include<stdio.h>
main() { int i,j,temp; int a[10]; for(i=0;i<10;i++) scanf ("%d",&a[i]); for(j=0;j<=9;j++) { for (i=0;i<10-j;i++) if (a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;} } for(i=0;i<10;i++) printf("%d",a[i] ); }注意(黄色部分):1、int a[10]是从a[0]到a[9],没有a[10];
2、if(a[i]>a[i+1]),表示如果a[i]>a[i+1]为真,将a[i]与a[i+1]交换位置,所以该组数据是要求从小到大排列的。
分析(蓝色部分):第一个for循环(for(i=0;i<10;i++))是循环输入10个数据;第三个for循环(for (i=0;i<10-j;i++))嵌套在第二个for循环之中,表示每个数据要比较9次;而第二个for循环(for(j=0;j<=9;j++))表示有9个数据要参与比较,只有一个数据等着被比较;最后一个for循环(for(i=0;i<10;i++))表示循环输出10个数据。