《《求教一个关于数学排序的问题。》》
#include<stdio.h>void main()
{
int a[100];
int n, i, j, t;
printf ("请输入要排序的数字个数: ");
scanf ("%d", &n);
printf ("请输入各个数字: ");
for (i=0; i<n; i++)
scanf ("%d", &a[i]);
for (j=0; j<(n-1); j++) /*进行n-1次循环,实现n-1趟比较*/
for (i=0; i<(n-1-j); i++) /*在每一趟中进行n-1-j次比较*/
if (a[i]>a[i+1]) /*相邻两个数比较*/
{
t = a[i]; a[i] = a[i+1]; a[i+1] = t;
}
printf ("经过排序后的数字为: ");
for (i=0; i<n; i++)
printf ("%d", a[i]);
}
为什么上面要循环N-1次,而不是N次,还有就是为什么是N-1-J次比较?