c语言冒泡排序

#include"stdio.h"
void main()
{
int i,j,t;
int a[10]={101,23,56,78,6,805,-1,123,17,80};

printf("给一组数按从小到大排序程序\n");
printf("待排序的数为:\n");
for(i=0;i<10;i++)
printf("%d\t",a[i]);
printf("\n");
for (i=0; i<10; i++)
for (j=1; j<10-i;j++)
if (a[j-1]>a[j])
{t=a[j-1];a[j-1]=a[j];a[j]=t;};
printf("排序后的结果:\n");
for(i=0;i<10;i++)
printf("%d\t",a[i]);
}
这 for (i=0; i<10; i++)
for (j=1; j<10-i;j++)两个相连的for循环作用是什么

第一个for是代表从数组的 第前一个元素(设为j)循环到数组最后一个元素。
第二个for代表从j+1个(也就是第j+1个元素到最后一个元素,每一个元素和第j个比较大小,然后换位。
举个例子:比如现在是for到第一个元素,然后第二个for到的第一个的后一个(就是第二个)进行比较,然后换元素。
有什么不懂再问喔追问

谢谢啊,明白了

温馨提示:答案为网友推荐,仅供参考