这道c语言的题怎么做,我求不出来

img

排序啊
023579

#include "stdio.h"
void fun(int a[],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
            if(a[j]<a[k]) k=j;
        t=a[k];a[k]=a[i];a[i]=t;
    }
}
main()
{

     int b[]={5,2,9,7,0,3},i;
     fun(b,6);
     for(i=0;i<6;i++)
         printf("%d",b[i]);
}

img

img

这就是选择排序法,可以学习一下,都带动画演示的,非常好理解
十大经典排序算法(动图演示) - 一像素 - 博客园 0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序: https://www.cnblogs.com/onepixel/articles/7674659.html
如果这是老师出的题的话,确实不严谨,编译都会报错啊。main函数里是不认识a是什么的,写错了

fun函数是选择排序,因为是a[j] < a[k],k记录的是较小的数,所以是从小到大排序,结果是023579

img

这有点问题:a[i]没有定义

img