C语言冒泡法排序详解
#include<stdio.h>
#define N 5 /*定义常量N并赋值为5 */
int main()
{
int i,j; /*定义整型变量i和j,用作计数器*/
int grade[N];
int temp; /*和整形变量temp,用作临时变量*/
printf("输入5个数/n");
for(i=0;i<N;i++)
{
scanf("%d",&grade[i]);
}
/*开始冒泡排序*/
for(i=0;i<N;i++){ /*开始外层for循环,从i=0,每次加1,直到i=4 */
/*外层循环体开始*/
for(j=0;j<N-1-i;j++){ /*开始外层for循环,从j=0,每次加1直到i等于外层循环的N-j-1*/
/*内层循环体开始 */
if(grade[j]<grade[j+1]){ /*条件判断,如果整形数组前面的数比其后的小,执行以下语句 */
/*交换grade[j]和grade[j+1]中的数据*/
temp=grade[j+1]; /*将比较大的数赋值给temp*/
grade[j+1]=grade[j]; /*将比较小的数赋值给数组中后面的变量*/
grade[j]=temp; /*将比较大的数赋值给数组中前面的变量*/
} /*从此便完成大小变量的交换,使得大值往前放*/
} /*结束内层循环*/
} /*结外内层循环,完成排序*/
printf("最后排序为:/n");
for(i=0;i<N;i++)
{
printf("%d",grade[i]);
}
printf("/n");
return 0; /*main函数返回0,表示程序正常结束*/
}