将一组数据从小到大排序。
思路:
规律:N个数字来排队,两两比较小靠前;
外层循环N-1(控制需要比较的轮数);
内层循环N-1-i(控制每轮比较的次数,其中i为外层循环变量)。
int nums[]={10,3,8,1,6}; int i,j,temp; //外层控制比较的轮数(5个数字比较4轮) for(i=0;i<4;i++){ //内层循环控制每轮比较的次数 for(j=0;j<4-i;j++){ if(nums[j]>nums[j+1]){//交换顺序 temp = nums[j];//一定要是j,如果是i则只比较每一轮的第一个!!!! nums[j]=nums[j+1]; nums[j+1]=temp; } } } printf("排序后的数字为:"); //利用循环遍历输出 for(i=0;i<5;i++){ printf("%d ",nums[i]); }