解题思路:

                我用的并不是选择法而是冒泡排序,思路是10个数之间两两比较,第一轮比较9次即可得出最大值,同理第二次比较依然可以得到次大值,依此类推总共比较9轮即可得到最终的排序结果,我这里提供了两种算法,第一种是在主函数里面进行操作,第二种是定义一个函数 ,在函数里面操作,其原理相同,大家可以自行选择一种算法借鉴


注意事项:

                两次循环皆是比较9次而不是10次 

                如果这篇文章对您有帮助,请您为我点个赞,又不懂的可以评论,我会为您解答

参考代码:

/*用选择法对10个整数从小到大排序。*/

#include<stdio.h>


int main()

{

    int a[10];

    int i = 0, t = 0, j = 0;


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

    {

        scanf("%d", &*(a+i));

    }

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

    {

        for(j=0; j<9-i; j++)

        {

            if(a[j]>a[j+1])

            {

                t = a[j];

                a[j] = a[j+1];

                a[j+1] = t;

            }

        }

    }


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

    {

        printf("%d\n", *(a+i));

    }


    return 0;

}


/*#include<stdio.h>


void sort (int *a, int len)

{

    int t = 0, i = 0, j = 0;

    for(i=0; i<len-1; i++)

    {

        for(j=0; j<len-1-i; j++)

        {

            if(a[j]>a[j+1])

            {

                t = a[j];

                a[j] = a[j+1];

                a[j+1] = t;

            }

        }

    }

    return;

}

int main()

{

    int a[10];

    int i;

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

    {

        scanf("%d", &*(a+i));

    }

    sort(a, 10);

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

    {

        printf("%d\n", *(a+i));

    }


    return 0;

}*/


点赞(2)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论