int main()
{
int arr[10];
int i = 0;
int j = 0;
int temp = 0;
for (i;i<10;i++)
{
scanf("%d",&arr[i]);
}
for (j;j<10-1;j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
for (i = 0;i<10;i++)
{
printf("%d\t",arr[i]);
}
return 0;
}
你这只有一层for循环哇
for (i = 0; i < 9;i ++) //冒泡排序十个数,只需要9趟
{
for (j = 0; j < 9 - i; j++) //9-i是因为每一趟就会少一个数比较
{
if (arr[j] > arr[j+1])//这是升序排法,前一个数和后一个数比较,如果前数大则与后一个数换位置
{
tem = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tem;
}
}
}
排序用双循环
for(i=0;i<9;i++)
for (j=0;j<9-i;j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}