解题思路:1.提前自定义最大值函数,最小值函数

2.利用for循环依次比较10个数,选出最小值并用 j 记录位置,将 arr[0] 与 arr[j] 互换其值

3.同样利用上述思想实现 arr[9] 与最大值互换


注意事项:在查找的过程中仅做查找,不做值的交换(与冒泡排序有区别)

参考代码:

# include <stdio.h>

int max(int x,int y)

{

    return x>y?x:y;

}


int min(int a,int b)

{

    return a<b?a:b;

}


int main()

{

    int arr[10];

    int m,n,i,j=0;

    for(i=0;i<10;i++){

        scanf("%d",&arr[i]);

    }


    m=arr[0];

    n=arr[9];


    for(i=1;i<10;i++){

        m=min(m,arr[i]);

        if(m==arr[i]){             //判断此时的arr[i]是否为最小值,若是则用 j 记录其位置

            j=i;

        }

    }

    arr[j]=arr[0];                   //将最小值与第一个数的位置互换

    arr[0]=m;

    

    for(i=0;i<9;i++){

        n=max(n,arr[i]);

        if(n==arr[i]){               //判断此时的arr[i]是否为最大值,若是则用 j 记录其位置

            j=i;

        }

    }

    arr[j]=arr[9];                    //将最小值与第一个数的位置互换

    arr[9]=n;


    for(i=0;i<10;i++){

        printf("%d ",arr[i]);

    }

    return 0;

}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论