排序
代码:
#include <stdio.h>
int main (void)
{ // 定义数组名字,数组元素
int arr[10]={ 9,33,23,12,42,53,2,1,55,10};
int i,j; //定义 i j 两个变量
int temp; //顶一个临时变量
for( i=0; i<9; i++) //外层循环,从0开始,循环9次。
{
for(j=0; j<9-i; j++) //内循环确定一个有效值
{
if(arr[j] > arr[j+1]) //if条件判断,>为升序,<为降序。
{
temp = arr[j]; /*当arr[j] > arr[j+1]时候,temp临时值为arr[j];
arr[j]空值,再把arr[j+1]的值赋给arr[j]
arr[j+1]为空值,把temp的值赋给arr[j+1]
*/
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for( i=0; i<=9; i++) //循环十次,输入十次的值
{
printf("%d\n",arr[i]);
}
return 0;
}
解释:
1、首先开始定义数组名字与元素个数。
2、定义变量 i 和 j ,做循环使用,再定义一个temp空值,作为临时存储数值。
3、for( i=0; i<9; i++)
,一共有十个元素,但是数组第一个元素是从0开始,最后一个数不做比较,所以只要比较9次即可。
4、for(j=0; j<9-i; j++)
,每次做一个比较就会少一个数,就用9-i。
5、if(arr[j] > arr[j+1])
,给一个条件判断,当第一个数大于第二个数,就运行{ 表达式}
里面的语句块。
6、
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
当 > 升序,< 为降序。
当arr[j] > arr[j+1]时候,temp临时值为arr[j];
那么arr[j]就为空值,再把arr[j+1]的值赋给arr[j]
arr[j+1]为空值,最后把temp的值赋给arr[j+1]
例如:a=2,b=1,怎么变换成a=1,b=2?
首先把a的值赋值给temp,这时的temp为2,a就是空值,没有东西。
接着把b的值赋值给a,这时a=1,就为空值。
最后再把temp的值赋值给b,这时候的a=1,b=2。
7、 for( i=0; i<=9; i++)
循环十次,输入十次的值进行排序。
结果: