选择法 :也就是第一个数逐次跟每个数比较,之后最小的放在第一位上,以此类推
首先需要用到三个变量,分别是i、j和中间变量tem,当然拉数组也得定义:a[10]
其实不难,就是运用两个for相嵌套,然后嵌套中运用if进行比较,假设i<j,但是a[i]>a[j],然后运用中间变量tem进行转换,实现从小到大的排序!
接下来看一下程序代码吧:
#include<stdio.h>
int main(){
int a[10];//定义一个长度为10的数组a
int i,j,tem;//定义 变量i、j 及中间变量tem
printf("请随机输入10个元素: \n");
for(i=0;i<10;i++){
scanf("%d",&a[i]); //利用for循环及sacnf()函数输入10个元素
}
for(i=0;i<10;i++){ //这边假设 j比i大1,这个只是变量,可以根据你的喜好更改!
for(j=i+1;j<10;j++){ //j=i+1 => j比i大
if(a[i] > a[j]){ //在for(j=i+1;j<10;j++)中引入if语句写反例:a[i]>a[j]
tem = a[i]; //将大的值赋值给中间变量 tem
a[i]=a[j]; //将小的值赋值给 a[i]
a[j]=tem; //通过中间变量将大的值赋值给a[j],实现从左到右依次增大!
}
}
}
printf("排序后的数组为: \n");
for(i=0;i<10;i++){
printf("%4d",a[i]);
}
return 0;
}
结果为: