数组排序
问题
题目:现在有一个10个数据的数组,现在需要将该数组从小到大进行排序。
思路:用数组中第一个数据与第二个数据进行比较,若第一个数据大于第二个数据则两个数据交换位置,之后再进行第二个数据与第三个数据的比较。
#include<stdio.h>
int main(void)
{
//自己定义的随意一个10个数据的数组
int shuzu[10] = {100,49,58,9,27,50,900,79,58,37};
//i,j确定数组的位置,k用来打印数组
int i,j,k;
//交换的变量
int temp;
//运用for的嵌套进行比较
for (i = 0; i < 10; i++)
{
for (j = i + 1; j <11; j++)
{
if(shuzu[i] > shuzu[j])
{
temp = shuzu[i];
shuzu[i] = shuzu[j];
shuzu[j] = temp;
}
}
}
printf("从小到大依次为:\n");
for (k = 0; k < 10; k++)
{
printf("%d\n", shuzu[k]);
}
return 0;
}
对第一个数据和第二个数据进行分析,shuzu[0]=100,shuzu[1]=49,进入if后temp=shuzu[0]=100;shuzu[0]=shuzu[1]=49;shuzu[1]=temp=100。
小结
分析第一个数据和第二个数据进行思考,完成这个小题目。利用这套思路可以进行数据长度更长的数组排序,以及数组的降序排序。