3、用选择法对10个整数升序排序, 10个整数用scanf函数输入。

3、用选择法对10个整数升序排序, 10个整数用scanf函数输入。

选择排序的思路为:设有10个元素a[1]-a[10],将a[1]与a[2]- a[10]比较,若a[1]比a[2]- a[10]都小,则不进行交换,即无任何操作。若a[2]- a[10]中有一个以上比a[1]小,则将其中最小的一-个(假设是a[i]) 与a[1]交换, 此时a[1]中存放了10个整数中最小的数。第2轮将a[2]与a[3]- a[10]比较,将剩下9个数中的最小者a[i]与a[2]交换,此时a[2]中存放的是10个整数中第二小的数。以此类推,共进行9轮比较, a[1]-a[10]就 已按由小到大的顺序存放了。

根据题目提示,进行了一个实现,供参考:

#include <stdio.h>

int main(void){
    
    int num[10];
    
    int i;
    //获取10个整数到数组 
    for(i=0;i<10;i++){
        printf("请输入第%d个整数:",i+1);
        scanf("%d",&num[i]);
    }
    
    int j;
    int temp;
    //升序排序 
    for(i=0;i<9;i++){
        
        for(j=i+1;j<10;j++){
            //将数组下标为i的元素与下标为i+1到下标为9之间的数比较,如果前面的数比后面的大,则交换他们 
            if(num[i]>num[j]){
                temp = num[i];
                num[i]=num[j];
                num[j]=temp;    
            }
            
            
        }
    }
    
    //打印结果 
    for(i=0;i<10;i++){
        printf("%d ",num[i]);
    }
    
    return 0;
    
} 

img